【BC26】-02-功能完善
功能描述
本次项目需要完成的BC26收发模块的功能:
- 整体:能够通过单片机用UART2和BC26模块进行通信,能够将数据收发传送到BC26模块并发送出去。
- BC26模块的初始化
- BC26模块进行数据的发送
- BC26模块进行数据的接收(中断?)
接口定义
status BC26_Init(void); 进行模块的初始化(原来的程序有一点冗长,主要调试信息太多了,做了一些简化)
status BC26_SendMessageUDP(char *); 通过UDP方式进行数据的发送
status BC26_ReceiveMessageUDP(void); 通过UDP方式进行数据的接收(通过向上位机打印来验证)
编程思路
将BC的接口定义完成之后,为了简化接收的步骤,封装一个串口发送和接收字符串的函数。
然后将原来的函数进行一波简化应该就可以用了。
编程实现
遇到的第一个问题是在封装了发送字符串的函数后,没有办法进行系统时钟的设置,在设置的时候直接进入了Error_Handle();。
解决方法:重新启动一下这个CubeMX来进行重置,然后就可以work了,不太清楚是哪里出现了问题,应该是Clock的配置出现了问题。
现在是需要继续封装一个接收字符串的函数,在flag为true的时候读取出来字符串,然后,可能要改一下前面的
新的想法
现在的问题有,这里的串口收数据是连续接收,没有固定长度,在接收完一个包之后,再进行下一个包的处理。关键的问题就是,需要通过中断空闲中断来解决问题(STM32能够支持)。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Xuanyao's Blog!