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串口发送中 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)