完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近接手了一个学长所做的编程板程序。其中想用GO命令实现程序在目标新品的ram区运行功能。发送0x21+0xDE后返回ACK正常,但是发送起始地址和校验和之后很长时间主机未收到ACK或者NACK。我使用rt-thread操作系统并设定了一个计时器,当超过100os tick未收到ACK的话则返回超时。我加长了计时器时长依旧没有改善,主机端发送数据后,器件端应该很快返回ACK或NACK吧?即使发送的数据不对也应该返回NACK吧。这种问题是什么原因造成的?
|
|
相关推荐
1个回答
|
|
从您的描述来看,这个问题可能由以下几个原因导致:
1. 通信协议问题:请检查您的通信协议是否正确实现,包括波特率、数据位、停止位和奇偶校验位等设置。确保主机和目标设备之间的通信协议一致。 2. 数据包格式问题:请检查您发送的数据包格式是否正确。根据您的描述,您已经正确发送了0x21和0xDE,但请确保起始地址和校验和的格式也正确。 3. 目标设备固件问题:请检查目标设备的固件是否正确实现了接收数据和返回ACK/NACK的功能。可能是固件中存在bug,导致无法正确处理接收到的数据。 4. 主机端接收问题:请检查主机端的接收代码是否正确实现。确保主机端能够正确解析接收到的数据,并在收到ACK/NACK时进行相应的处理。 5. 硬件连接问题:请检查您的硬件连接是否正确,包括串口线、USB转串口模块等。确保硬件连接没有问题。 6. 干扰问题:请检查您的系统中是否存在电磁干扰或其他干扰,这可能会影响通信质量。 为了解决这个问题,您可以尝试以下步骤: 1. 检查通信协议设置,确保主机和目标设备之间的设置一致。 2. 仔细检查数据包格式,确保发送的数据正确无误。 3. 审查目标设备的固件代码,确保接收数据和返回ACK/NACK的功能正确实现。 4. 检查主机端的接收代码,确保能够正确解析接收到的数据。 5. 检查硬件连接,确保没有连接问题。 6. 尝试在不同的环境或使用不同的硬件连接,以排除干扰问题。 7. 如果问题仍然存在,您可以尝试使用调试器或逻辑分析仪等工具,进一步分析通信过程,找出问题所在。 希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我们能够更好地帮助您。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1658 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1568 浏览 1 评论
996 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
695 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1616 浏览 2 评论
1876浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
660浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
528浏览 3评论
547浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
517浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 19:14 , Processed in 0.890949 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号