难道有环形队列串口发送数据就万事大吉了吗
1.问个问题,下面程序有没有BUG 2.环形队列虽然解决了一开始的中断发送数据覆盖问题,但是呢却引入了新的问题 3.然后看看中断发送 4.想没想明白是什么问题 5.发送数据1 和发送数据2 之间没有延时...... 咱做程序的时候经常碰到各个地方都需要发送串口的数据,但是如果两个发送函数一个先发送完,另一个紧接着就发送了....... 这时候就有问题了,发给一个设备,本来都是正确的数据,但是由于这么一整,数据便成了错的了. 好现在解决这个问题 主要目的就是发送的数据还需要管理一下,让发送的数据之间有时间间隔 好,再加个环形队列 这个环形队列呢,记录要发送的数据个数 现在就有两个环形队列, 一个环形队列数存储数据,就是咱一开始用的 另一个环形队列是存储这次要发送的数据个数 那么每次发送数据变为 然后中断发送里面 Usart1ManageSendDatLen记录的是这次发送的数据个数 发送的时候Usart1ManageSendDatLen -- , 变为0,就说明发完了现在的数据了 发送的数据个数是在定时器里面获取 if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET) { if(Usart1ManageSendDatLen>0 && rbCanRead(&Uart1rb)>0)//发送的数据个数大于0 ,环形队列可以读出来数据 {