|
本帖最后由 sqhua333 于 2016-5-13 14:29 编辑
#define USART_Tx_DATA_SIZE 128 //缓存区大小
uint8_t USART_Tx_Buffer[USART_Tx_DATA_SIZE]; //分配缓存区
uint8_t USART_Tx_flag = 0; //标记缓存区是否有数据
uint32_t USART_Tx_ptr_in = 0; //发送队列尾指针
uint32_t USART_Tx_ptr_out = 0; //发送队列头指针,即将被发送的数据
uint32_t USART_Tx_length = 0; //发送区为发送数据的长度
/**************************************************************************************************************
*经过这样分配后,通过串口发送数据变成了向缓存队列写入数据,中断函数完成数据的发送。除执行中断函数外,其他时间,
*CPU可以干任何的其他事情。这就解决了发送串口数据占用时间过长的问题。
*稳定性还是挺高,只是会频繁的产生中断。
*BUG;当工程中有USB bulk通信和串口一起通信时,USB中断会干扰串口,导致乱码。
***************************************************************************************************************/
|
评分
-
查看全部评分
|