完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
不知道是不是因为dma的问题,还是hal库使用的问题,我用单片机可以和xshell终端使用ymodem协议传输bin文件,上位机可以和串口助手使用ymodem传输文件,但是我用单片机和上位机连接在一起,就出错了,第一次握手成功,单片机收到了数据,然后返回指令ACK C,但是上位机同步读取,读取的数据还是C(应该先是ACK)校验就没法通过了。
我看别人分享的源码,ymodem接收
请问一下,hal库中没有USART_GetFlagStatus(), 用哪个代替好?__HAL_UART_GET_FLAG吗?还是用HAL_UART_Receive()带有超时的,但我尝试使用这两个都有问题, 我也是用上面类似的方法直接判断usart中断中的Rx_Flag是否为1,和上位机通信有问题,是不是这里的问题导致的? 因为手动调试单片机和上位机是可以一起传输的,但是要全速运行就不行了... |
|
相关推荐
2个回答
|
|
楼主可以用中断方式接收,或者用带有延时的,延时尽量少一些。1000左右
|
|
|
|
问题很可能出在DMA的配置上。可以尝试检查以下几点:
1. 检查DMA的配置是否正确。确保DMA的数据长度与接收缓冲区长度相匹配,确保DMA的传输模式设置为每次传输一个字节,确保DMA的循环模式设置为禁止。 2. 检查UART接收中断是否正确配置。确保接收中断在接收缓冲区满时触发,确保正确处理接收中断。在接收中断中,将接收到的数据存入接收缓冲区,并设置标志位以便主程序处理。 3. 检查主程序是否正确处理接收到的数据。在主程序中,检查接收标志位,并读取接收缓冲区中的数据。确保清除接收标志位。 4. 检查波特率设置是否一致。确保上位机和单片机使用相同的波特率。 5. 确保上位机发送数据时遵循Ymodem协议规定的流程和格式。检查上位机发送的数据是否符合Ymodem协议的要求。 如果问题仍然存在,可以尝试使用其他的串口接口或其他的通信协议来进行通信,看看是否还出现相同的问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1780 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1081 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1679 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
596浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
556浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 16:01 , Processed in 0.787914 second(s), Total 49, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号