打印
[其它应用]

SH79F166A串口接收问题,可以进入接收中断但接收一直是0

[复制链接]
2214|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
guofengyu|  楼主 | 2018-12-22 20:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[code]
    TR2=0;                                                                              //关闭TIMER2
    TF2=0;                                                      //清TIMER2溢出标志
//      
   T2MOD|=Bin(00000000); //T2OE  T2波特率发生器方式置1
    T2CON=Bin(00110000);  //此处TR2未置1,定时器2未开始
    RCAP2H  = (65536L-_UART_BAUD_T2CLK /BaudRate/32) >>8;
    TH2     = RCAP2H;
    RCAP2L  = (65536L-_UART_BAUD_T2CLK /BaudRate/32) &0x00FF;   
    TL2     = RCAP2L;
    TR2=1;         //定时器2开始

    PCON|=Bin(00000000);
    SCON|=Bin(01010000);

   
    REN=1;
    ET2=1;
    ES=1;[/code]
遇到奇怪的问题,帮忙看下,系统12M,出现问题是可以正常进入串口中断,通过串口助手仿真调试,无论串口助手发送什么数据,仿真接收都是0x00 ,仿真可以正常进入接收中断,就是接收数据是0,发送没问题,可以正常向串口助手发送正确的数值,不知初始化有没有问题
沙发
xiaoqizi| | 2019-1-5 16:20 | 只看该作者
首先要确认是不是真的已经发送数据了

使用特权

评论回复
板凳
sszxxm| | 2019-1-6 13:52 | 只看该作者
166A的主频不高,对高波特率初始化,一定要核对一下实际的定时器初值在时钟不能被整数倍除尽造成的量化误差,9600bps是最大了,再往上,实际波特率误差会加大,造成数据错误,必须用外部晶振或时钟才可以。

看楼主位的初始化代码用了宏定义的值,不清楚实际测试的波特率,建议查一下。

中颖的51内置的RC时钟,很多都存在类似的问题,宏定义虽然简单方便,但是用之前务必用excel表格拉个清单验证一下定时器初值造成的可能误差。

使用特权

评论回复
地板
被遗忘的舍利| | 2019-1-14 13:48 | 只看该作者
IO配置检查下

使用特权

评论回复
5
probedog| | 2024-10-29 10:15 | 只看该作者
串口电路连接是否正确,包括TX、RX、GND等引脚是否连接无误。

使用特权

评论回复
6
flycamelaaa| | 2024-10-29 10:16 | 只看该作者
串口接收端口的电平设置是否正确。如果设置为低电平触发,而发送端发送的是高电平信号,则可能无法正确接收。

使用特权

评论回复
7
elephant00| | 2024-10-29 10:27 | 只看该作者
检查与串口接收相关的变量是否已正确定义并初始化。

使用特权

评论回复
8
laocuo1142| | 2024-10-29 11:01 | 只看该作者
检查是否有虚焊或接触不良的情况。

使用特权

评论回复
9
powerantone| | 2024-10-29 14:12 | 只看该作者
串口初始化有误?

使用特权

评论回复
10
classroom| | 2024-10-29 16:00 | 只看该作者
中断配置是否正确,包括中断使能、中断优先级等。

使用特权

评论回复
11
两只袜子| | 2024-10-29 17:16 | 只看该作者
检查中断服务函数是否正确处理接收到的数据。

使用特权

评论回复
12
jcky001| | 2024-10-29 18:09 | 只看该作者
清除接收缓冲区中的旧数据试试

使用特权

评论回复
13
cr315| | 2024-10-29 21:03 | 只看该作者
检查接收函数是否正确实现,包括接收数据的存储和处理。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

11

帖子

1

粉丝