STM32串口中断的一些资料
时间:11-19
来源:互联网
点击:
母空格和标点符号!
在使用时,只要将TXS指向要发送的字符串或者数组,设置TxLen为要发送的数据长度,然后执行USART_ITConfig(USART1,USART_IT_TXE,ENABLE)就立即开始发送过程。用户可以检查TxCounter1来确定发送了多少字节。比如以第二种情况为例:
uint32_t*TXS;
uint8_tTxBuffer1[]="0123456789ABCDEF";
uint8_tDST2[]="ASDFGHJKL";
__IOuint8_tTxLen=0x00;
TxLen=8;//发送8个字符,最终发送的是01234567
TXS=(uint32_t*)TxBuffer1;//将TXS指向字符串TxBuffer1
TxCounter1=0;//复位索引值
USART_ITConfig(USART1,USART_IT_TXE,ENABLE);//启用TXE中断,即开始发送过程
while(TxCounter1!=TxLen);//等待发送完成
TXS=(uint32_t*)TxBuffer2;//同上,最终发送的是ASDFGHJK
TxCounter1=0;
USART_ITConfig(USART1,USART_IT_TXE,ENABLE);
while(TxCounter1!=TxLen);
以上就是我认为的最佳方案,但串口中断方式数据有多长就中断多少次,我认为还是占用不少CPU时间,相比之下DMA方式就好多了,因为DMA发送字符串时最多中断两次(半传输完成,全传输完成),并且将串口变成类似16C550的器件。
STM32串口中 相关文章:
- STM32的串口中断(12-02)
- STM32 串口中断接收数据(12-01)
- STM32串口中断接收方式详细比较(11-26)
- STM32 串口之中断接受(11-25)
- STM32串口中断方式接收(11-20)
- STM32串口中断接收一个完整的数据帧(11-19)