功能描述


本次项目需要完成的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能够支持)。