这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 关于串口中断发送批量数据(建立缓冲区)

共5条 1/1 1 跳转至

关于串口中断发送批量数据(建立缓冲区)

工程师
2012-05-19 23:48:19     打赏
各位,怎么在串口中断服务程序里面发送一个数组里面的数据的啊,我调不好啊



关键词: 关于     串口     中断     发送     批量     数据     建立     缓冲区    

工程师
2012-05-19 23:53:09     打赏
2楼
服务函数里面调用这些语句并没有发送出去,求解!
if (USART_GetITStatus(USART1, USART_IT_TXE) != RESET)         //发送中断
            {
             for(t=0;t<8;t++)
            {
             USART1->DR=USART_TX_BUF[j++];
             while((USART1->SR&0X40)==0);//等待发送结束
            }
   }
 

工程师
2012-05-20 21:30:07     打赏
3楼
发送期间USART中断请求只有这三个:发送完成中断、清除发送中断、发送数据寄存器空中断。
是有了这三个之一的中断产生了,才会有USART_GetITStatus(USART1, USART_IT_TXE) != RESET,而发送语句"USART1->DR=USART_TX_BUF[j++];"在中断服务程序中,顺序反了。
不知道理解得对不对?

工程师
2012-05-20 23:39:27     打赏
4楼
你研究的透吗?我一直不理解的是这个USART应该是中断一次就发送和接收一个字符,可要实现批量,不知道怎么搞。应该是用DMA的方式,可又不想用DMA.

院士
2012-05-21 02:37:18     打赏
5楼
还是用DMA方式吧~~
这个不占用系统的运行时间~~

共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]