error - cannot create command input file '.\Objects\..\..\Desktop\竞赛\模块化各个模块\ds18b20读取温度\onewire.__i'
时间: 2023-09-16 12:12:26 浏览: 147
这个错误通常表示在创建命令输入文件时遇到了问题。可能的原因之一是路径问题。你可以尝试以下解决方法:
1. 检查文件路径是否正确:确保文件路径中没有任何错误或拼写错误。特别是在文件夹名称或文件名中使用了特殊字符或空格时要小心。
2. 确保文件存在:检查该文件是否存在于指定的路径中。如果文件不存在,可以尝试重新下载或获取该文件。
3. 检查权限:确保你有足够的权限来访问和创建文件。如果没有适当的权限,你可能无法创建新文件。
4. 使用绝对路径:尝试使用绝对路径来引用文件,而不是相对路径。这可以避免路径问题,并确保能够正确访问文件。
如果上述方法都无法解决问题,你可能需要提供更多的上下文信息,例如你正在进行的操作、使用的编程语言和环境等,以便我可以更好地帮助你解决问题。
相关问题
main.c(11): error: #5: cannot open source input file "ds18b20.h": No such file or directory
这个错误提示是告诉你编译器找不到 ds18b20.h 文件,可能是以下几种情况导致的:
1. ds18b20.h 文件确实不存在。请检查一下你的工程目录或者查看一下这个文件是否被误删。
2. ds18b20.h 文件存在,但是路径设置不正确。请确认一下你的 include 路径是否设置正确。
3. ds18b20.h 文件存在,但是编译器没有权限访问。请检查一下你的文件权限设置是否正确。
解决方法:
1. 如果该文件确实不存在,请重新添加该文件到你的工程目录。
2. 如果路径设置不正确,请确认一下你的 include 路径是否设置正确。如果不确定,可以在编译器中设置绝对路径。
3. 如果文件权限设置不正确,请修改为可读可写权限。
DS18B20.C和ds18b20.h怎么写
DS18B20是一种数字温度传感器,需要通过单总线协议进行通讯。下面是一个简单的DS18B20代码示例,包含DS18B20.C和DS18B20.H两个文件。
DS18B20.H文件:
```c
#ifndef __DS18B20_H__
#define __DS18B20_H__
#include "stm32f4xx_hal.h"
#define DS18B20_PORT GPIOA
#define DS18B20_PIN GPIO_PIN_0
void DS18B20_Init(void);
void DS18B20_Start(void);
void DS18B20_Write(uint8_t data);
uint8_t DS18B20_Read(void);
float DS18B20_GetTemperature(void);
#endif
```
DS18B20.C文件:
```c
#include "ds18b20.h"
void DS18B20_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitStruct.Pin = DS18B20_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(DS18B20_PORT, &GPIO_InitStruct);
HAL_GPIO_WritePin(DS18B20_PORT, DS18B20_PIN, GPIO_PIN_SET);
}
void DS18B20_Start(void)
{
HAL_GPIO_WritePin(DS18B20_PORT, DS18B20_PIN, GPIO_PIN_RESET);
HAL_Delay(480);
HAL_GPIO_WritePin(DS18B20_PORT, DS18B20_PIN, GPIO_PIN_SET);
HAL_Delay(60);
}
void DS18B20_Write(uint8_t data)
{
for (int i = 0; i < 8; i++)
{
HAL_GPIO_WritePin(DS18B20_PORT, DS18B20_PIN, GPIO_PIN_RESET);
HAL_Delay(1);
if ((data >> i) & 0x01)
{
HAL_GPIO_WritePin(DS18B20_PORT, DS18B20_PIN, GPIO_PIN_SET);
}
HAL_Delay(60);
HAL_GPIO_WritePin(DS18B20_PORT, DS18B20_PIN, GPIO_PIN_SET);
}
}
uint8_t DS18B20_Read(void)
{
uint8_t data = 0x00;
for (int i = 0; i < 8; i++)
{
HAL_GPIO_WritePin(DS18B20_PORT, DS18B20_PIN, GPIO_PIN_RESET);
HAL_Delay(1);
HAL_GPIO_WritePin(DS18B20_PORT, DS18B20_PIN, GPIO_PIN_SET);
HAL_Delay(15);
if (HAL_GPIO_ReadPin(DS18B20_PORT, DS18B20_PIN))
{
data |= 0x01 << i;
}
HAL_Delay(45);
}
return data;
}
float DS18B20_GetTemperature(void)
{
uint8_t temp_l, temp_h;
float temperature;
DS18B20_Start();
DS18B20_Write(0xCC);
DS18B20_Write(0x44);
HAL_Delay(750);
DS18B20_Start();
DS18B20_Write(0xCC);
DS18B20_Write(0xBE);
temp_l = DS18B20_Read();
temp_h = DS18B20_Read();
temperature = (temp_h << 8) + temp_l;
temperature = temperature * 0.0625;
return temperature;
}
```
这段代码使用了STM32 HAL库来实现GPIO的控制,需要根据具体的硬件平台进行修改。函数DS18B20_GetTemperature()用于读取温度值,其他函数用于实现单总线协议的通信。