完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
芯片是stm8s105k4,开发工具IAR
用硬件示波器量,没有收到任何数据,但是一直进入到接收中断里去,接收中断的代码如下
奇怪的现象是在DealReceiveData这个函数增加断点后,按F10单步执行,会走到g_u8Index1++;,但在下一步就会直接跳回DealReceiveData,上面的内容都没有被执行,这是为什么? |
|
相关推荐
1个回答
|
|
根据您提供的信息,您使用的是STM8S105K4芯片,开发工具为IAR。您遇到的问题是在硬件示波器上没有收到任何数据,但是接收中断(UART2_RX_IRQHandler)一直被触发。为了解决这个问题,我们可以按照以下步骤进行排查:
1. 检查硬件连接:首先,请确保您的硬件连接正确,包括UART2的TX和RX引脚是否正确连接到发送和接收设备。 2. 检查波特率设置:请检查您的UART2波特率设置是否与发送设备的波特率相匹配。波特率不匹配可能导致接收到的数据不正确或无法接收到数据。 3. 检查中断使能:请确保您已经正确配置了UART2的接收中断使能。在您的代码中,您已经清除了接收中断标志(UART2_ClearITPendingBit(UART2_IT_RXNE)),但是在中断触发之前,请确保已经使能了接收中断。 4. 检查中断优先级:请检查您的中断优先级设置是否正确。如果中断优先级设置不当,可能会导致中断服务例程(ISR)无法正确执行。 5. 检查接收缓冲区:请检查您的接收缓冲区(g_s8ReceiveData)是否足够大,以存储接收到的数据。如果缓冲区太小,可能会导致数据丢失。 6. 检查数据校验:您提到了“校验包”的代码被注释掉了,请确保您的数据校验逻辑是正确的,以便在接收到数据时能够正确处理。 7. 检查其他中断:请检查是否有其他中断可能会影响UART2_RX_IRQHandler的执行。如果有,请确保这些中断的优先级和触发条件设置正确。 8. 使用调试器:如果以上步骤都无法解决问题,建议您使用IAR的调试器逐步执行代码,以便更好地了解中断服务例程的执行情况。 通过以上步骤,您应该能够找到导致接收中断一直被触发的原因,并采取相应的措施解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1570 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1515 浏览 1 评论
943 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
669 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1562 浏览 2 评论
1851浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
620浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
506浏览 3评论
511浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
492浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 11:29 , Processed in 0.427303 second(s), Total 41, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号