|
很神奇,这个问题我已经弄了几个小时,没找到原因发贴的时候我就在想,会不会贴子一发,马上问题就找到了
结果真是这样
仔细查看了一下获取温度的代码,有一条语句判断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;
- }
复制代码
|
|