完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
从串口调试助手向开发板发送一个数据0x55,再将接收到的数据发送出去。
串口中断服务函数如下: if( USART_GetiTStatus(USART_CHANNEL, USART_IT_RXNE) != RESET ) {gg_rs232_recv_buf[gg_recv_index]=(T_U8)USART_ReceiveData(USART_CHANNEL); USART_SendData(USART_CHANNEL, gg_rs232_recv_buf[gg_recv_index]); gg_recv_index++; } 在Debug模式下,在接收的缓存中gg_rs232_recv_buf[]收到的是0x30(即只有第一个字符被接收到了),如图1所示: 从串口发送出来的也是0x30,如图2所示: 然而在连续运行的时候,发送的0x55,接收之后,然后可以通过串口正常地发送出来,如图3所示: 为什么在Debug的时候不正常呢?没找出原因,求大神指点! |
|
相关推荐
9个回答
|
|
本帖最后由 creep 于 2015-6-21 21:27 编辑
道理很简单,你要发送十六进制就要选中HEX发送,如果不选择的话就会以ASCII发送‘0’,‘x’,'5','5',因为你又是中断模式下的dubug,所以第一次中断只能接收第一个字符‘0’,即使0x30,非dibug模式下肯定会把4个字符接收完成的所以看上去是对的。如果debug模式下全速运行得到的结果也是应该是对的。 |
|
|
|
|
|
|
|
|
|
|
|
谢谢分享
|
|
|
|
谢谢分享!!
|
|
|
|
亲爱的娜娜 发表于 2018-9-30 16:59 学习了,哈哈哈 |
|
|
|
学习了
|
|
|
|
学习了
|
|
|
|
亲爱的娜娜 发表于 2018-9-30 16:59 分析得很透彻 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
1138 浏览 0 评论
2483 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2273 浏览 3 评论
4916 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2419 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-2 23:58 , Processed in 0.582642 second(s), Total 54, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号