新手上路
- 积分
- 37
- 金钱
- 37
- 注册时间
- 2020-3-16
- 在线时间
- 7 小时
|
由于32是看原子哥的教程,我现在做项目都是用原子哥写好的库进行调试的,我走的是硬件设计,但是很多时候也需要写点小代码自己测一下的。所以有了这些调试分享,如果分享有问题或者大伙有什么意见欢迎提出一起进步。
手头上的模块是串口空气质量,传感器用到的是CCS811,简单的贴下这个模块的AT指令,根据原子哥的拓展历程HC05蓝牙模块进行改写。由于前面的AT指令放回的都是OK\r\n所以在历程上简单改写就可以了。问题不大我也贴出其中的一个函数作为参考。
最后在发送读取传感器数据的时候,遇到了AT+PRATE=0中返回的是OK\r\n CO2 = XXXppm;TVOS = xxxppb\r\n时,我把串口2读回来的数据USART2_RX_BUF在串口1回传到串口助手中,结果发现只有OK读到了,后面的数据基本丢失了。我就加入开始测试是串口1发送问题还是串口2接收问题,把串口二换成USB转TTL在上位机上发送数据,串口一拿到数据直接发回电脑,最后发现是串口二接收问题,于是我有找了串口2接收的函数,发现判断结束的条件两个字符相隔10ms以上就认为是结束了。为此我猜测这个模块的OK和后面的数据是分开发送的,修改了TIME4定时器的时间变为100ms后可以接收到后面的数据了,但是OK被覆盖掉了,如果想要OK与数据都接收得到还需要继续调整串口中断函数的接收部分。而且该传感器提供的隔x秒自动传输模式也能避免这个问题,算是菜鸟起步第一文,哈哈哈不知道能不能算分享。最后问一下CCS811的读取寄存器的数据是什么数据,要怎么转化成PPM的浓度呢?佛系求解答因为这部是硬件的工作就是自己好奇而已
|
|