参照用户手册中的“4.3.2.5. 构建快速物联网的Hello World项目”可以控制LED和LCD
我在while里添加了一段读取温度传感器的代码,然后打印到屏幕
- get_temperature(buf,&len);
- sprintf(outbuf,"%d %d",buf[0],buf[1]);
- GUI_Clear();
- GUI_DispString(outbuf);
- App_WaitMsec(1000);
复制代码
运行后显示读取到的2个字节一直都是0
看到在初始化LED前已经对传感器和I2C接口做了初始化
/* Initialize all sensors */
Init_all_sensors();
查看sensors.h和sensors.c也没发现其它需要配置的地方
这是怎么回事儿呢?
此帖出自
小平头技术问答
结果真是这样
仔细查看了一下获取温度的代码,有一条语句判断size的大小,当它大于3时才读取温度数值
读取温度前把传入的长度赋一个值就OK了
size是一个指针变量,感觉好奇怪,断他的长度是出于什么考虑呢?难道是和蓝牙有关吗?
- uint8_t get_temperature(uint8_t *buf, uint8_t *size)
- {
- ens210_meas_data_t ens210_data;
- if(buf != NULL && size != NULL && *size > 3)
- {
- if(ENS210_Measure(mode_Tonly, &ens210_data) == 0)
- {
- float temp = ens210_data.T_mCelsius / 1000.0;
- FLib_MemCpy(buf, &temp, 4);
- *size = 4;
- return 0;
- }
- else {
- return 1;
- }
- }
- return 1;
- }
复制代码有可能吧 也许是防止数组越界?
一周热门 更多>