MapoPlus 发表于 2023-5-3 18:44

c8051F396关于串口中断接收不响应问题

最近在使用这款单片机时候遇到了一个很奇特的问题,打算和大家一起讨论一下
硬件环境:外部通过485差分经485驱动传输连接到单片机
控制描述:有两种数据指令都是四字节,分别为状态查询帧和状态设置帧,接收完成后执行相应的动作并回传
问题现象:外部发送状态查询时是可以响应回传的,但状态查询却没有响应回传
    1.挂仿真看发送状态查询时完全没有响应中断
    2.采用示波器打串口接收引脚看状态查询帧,电平和数据没有问题
    3.我在这个硬件链路中直接用USB转TTL串口直连到单片机引脚(跳过485驱动),这样来发送状态查询,单片机响应完全没有问题
    4.在多次尝试的过程中,我有多次取下和焊接这个USB转TTL串口的动作,出现过两次与外部485差分进来控制一样的现象

到这里个人感觉是硬件上有问题,也考虑过是否是程序没有看门狗导致跑飞。

MapoPlus 发表于 2023-5-3 19:17

但感觉应该不是程序跑飞的原因,因为状态设置没有响应后又尝试过状态查询,是可以响应回传的

一叶倾城wwq 发表于 2023-5-4 09:16

搞个测试程序测下MCU串口,就可以确定是哪里的问题了

一叶倾城wwq 发表于 2023-5-4 09:16

搞个测试程序测下MCU串口,就可以确定是哪里的问题了

mikizhang 发表于 2023-5-4 10:13

楼主还在用美国C8051吗,就不怕万一哪天不给你们供货了,赶紧换1T8051最强的STC8H8K64U,自带硬件USB下载和USB仿真。

MapoPlus 发表于 2023-5-5 20:39

程序逻辑:程序中接收完数据后,立即把指向接收数组位置的变量清零,判断具体帧类型再响应回传动作
测试发现:接收数组存储的字节数据是乱的,这导致不响应回传。整个程序中就只有在中断函数中使用这个指向接收数组位置的全局变量。
页: [1]
查看完整版本: c8051F396关于串口中断接收不响应问题