完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
代码如上,打印在终端的hex混乱,无论是v1还是x都是如此,rx_length长度值是对的,仔细查看代码发现rc_rx_cbk实际上就在USARTx_IRQHandler中断内被调用,device_read的时候从fifobuf复制数据到我自己的buf,然后更新index,会不会是dma接收到的数据比我打印出来要快导致的?或者这段代码存在其他问题? 问题解决,感谢楼下回答,目前我的板子能正常接收串口数据了 具体检查如下: 我使用vscode开发代码,由于忘记在c_cpp_properties.json添加BSP_SCB_ENABLE_I_CACHE和BSP_SCB_ENABLE_D_CACHE两个宏导致宏开启是灰色的,导致我误以为没有开启cache drv_common.c里面的状态: 然而我在makefile里面写了这两个宏: 然后不知道在啥时候,drv_usart.c的dma_isr和uart_isr里面的SCB_InvalidateDCache被我注释掉了,导致数据错误 解决方法: 一开始我去掉了SCB_InvalidateDCache的注释,发现代码卡在SCB_InvalidateDCache里面的while循环了,单步调试的时候发现caches的sets到达125的时候,ccsidr sets ways三个局部变量会乱跳???? 吓死我了,感觉代码里面有大问题??? 最终方案:注释掉SCB_EnableDCache,不用dcache了,然后drv_usart.c的两个SCB_InvalidateDCache也是注释掉,最后数据正常了 |
|
相关推荐
1个回答
|
|
问题分析及解决方案:STM32H7 UART 数据接收不正确根据提供的代码和问题描述,UART 数据传输不正确可能由以下原因引起: 核心问题:接收逻辑设计缺陷
解决方案分步说明步骤 1:修复回调函数和接收线程逻辑步骤 2:检查硬件配置确保正确性
步骤 3:启用 DMA 提升可靠性(可选)步骤 4:关键调试措施
常见问题排查表
|
||
|
|
||
只有小组成员才能发言,加入小组>>
184个成员聚集在这个小组
加入小组rtstudio是否可像keil加载ini解决虚拟串口与mcu串口通讯?
1212 浏览 0 评论
【Vision Board创客营连载体验】基于RA8D1-Vision Board的自动路径规划小车
1776 浏览 1 评论
【Vision Board创客营连载体验】基于Vision Board的垃圾分类
2156 浏览 0 评论
【Vision Board创客营连载体验】使用 Vision Board 做一个 UVC Camera
1777 浏览 0 评论
【Vision Board创客营连载体验】TinyMaix进行手写数字识别
2006 浏览 0 评论
1465浏览 5评论
在RT-Thread Studio中新建的stm32f407-atk-explorer工程运行qemu失败,是什么原因引起的?
1767浏览 3评论
为什么rt_device_read()只能读取到两个字节数据?
364浏览 3评论
连得上热点,但是ping baidu.com出现timeout,请问跟什么有关?
422浏览 3评论
421浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:11 , Processed in 1.068840 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
561
