完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
各位大佬,我写了一个串口发送字符串的程序,但是总是总是发送不出来,找了半天没找到原因,感觉是陷入中断循环了,代码如下:
unsigned char TXBuffer[5]={'a','b','c','d','e'}; unsigned char UART_Flag = 0; unsigned char DataToBeSent[5]; unsigned char DataPointer=0; void sendstring(unsigned char *ptr) { unsigned char j=0; if(UART_Flag==0) { UART_Flag=1; for(j=0;j<5;j++) { DataToBeSent[j] = *ptr++; } USART2->TDR = DataToBeSent[0]; DataPointer=1; } } 中断代码: extern u8 UART_Flag; extern u8 DataToBeSent[5]; extern u8 DataPointer; void USART2_IRQHandler (void) { if (USART_GetFlagStatus(USART2,USART_FLAG_TC) ==SET) { if(UART_Flag == 1) { USART2->TDR = DataToBeSent[DataPointer++]; if(DataPointer>(5-1)) { UART_Flag = 0; } } USART_ClearITPendingBit(USART2,USART_IT_TC); } } |
|
相关推荐
8个回答
|
|
|
|
|
|
|
|
|
找个例程对照修改比较好
|
|
|
|
|
|
我跑完样例,再参考了别的代码写的,就是看了半天不知道错在哪 |
|
|
|
|
|
|
|
|
|
|
|
发送的时候没有等待发送完毕??你看看例程 发送的时候是不是会有个while循环来等待发送标志位置位
|
|
|
|
|
|
发送完了要判断清标志位的
|
|
|
|
|
|
这么简单的问题
|
|
|
|
|
|
到处是例程,参考啊
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2776 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2379 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2255 浏览 0 评论
2367 浏览 1 评论
1625 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 16:59 , Processed in 0.839699 second(s), Total 86, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2618