Keil优化等级不同导致AM2301温湿度传感器读数错误

填坑日志一

  • MCU:STC8A8K64
  • 传感器:am2301
  • bug:
    AM2301读书不对,程序从stc12c5a60s2板子上移植的,延时函数使用定时器重新确定,按理说不应该出现读数问题。
  • debug:
    硬件更改上拉电阻未解决,调整软件延时未解决。想起更改过keil优化等级,将keil中c代码优化等级改为3级(原来设置为0),解决,读数正常。
  • 注:
    未深入研究过keil对代码的优化,以后编写注意不要随意更改优化等级。
Keil5是一款常用的嵌入式开发工具,用于编写和调试嵌入式系统的代码湿度传感器是一种常见的传感器,用于测量环境中的度和湿度。下面是一个简单的Keil5湿度传感器代码示例: ```c #include <stdio.h> #include <stdint.h> // 定义湿度传感器的地址 #define SENSOR_ADDRESS 0x01 // 定义湿度寄存器地址 #define TEMPERATURE_REG 0x00 #define HUMIDITY_REG 0x01 // 函数:读取度 float readTemperature() { // 发送读取度的命令到传感器 // ... // 从传感器读取度数据 // ... // 将读取到的数据转换为实际度值 // ... // 返回度值 return temperature; } // 函数:读取湿度 float readHumidity() { // 发送读取湿度的命令到传感器 // ... // 从传感器读取湿度数据 // ... // 将读取到的数据转换为实际湿度值 // ... // 返回湿度值 return humidity; } int main() { float temperature, humidity; // 初始化传感器 // ... // 循环读取湿度并打印 while (1) { temperature = readTemperature(); humidity = readHumidity(); printf("Temperature: %.2f C\n", temperature); printf("Humidity: %.2f %%\n", humidity); // 延时一段时间 // ... } return 0; } ``` 以上是一个简单的Keil5湿度传感器代码示例,其中包括了读取度和湿度的函数以及主函数中的循环读取和打印湿度数据的部分。你可以根据具体的湿度传感器型号和通信协议进行相应的修改和适配。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值