微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32串口中断的一些资料

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的器件。


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top