mingyuan 发表于 2024-11-25 13:26:25

串口4可以收发,用上位机发送一个字节,接收不对

本帖最后由 DebugLab 于 2024-11-25 13:47 编辑

我用的单片机是8G2K64S4,使用串口4的例程,可以收发,用上位机给串口4发送一个字节,接收到数据不对,下面是我程序


#include "reg51.h"
#include "intrins.h"

unsigned char xdata RX4_buffer={0};//
unsigned char RX4_cnt;// 串口4接收计数

sfr   T2L   =   0xd7;
sfr   T2H   =   0xd6;
sfr   AUXR    =   0x8e;
sfr   S4CON   =   0x84;
sfr   S4BUF   =   0x85;
sfr   IE2   =   0xaf;
#define ES4         0x10

sfr   P0M1    =   0x93;
sfr   P0M0    =   0x94;
sfr   P1M1    =   0x91;
sfr   P1M0    =   0x92;
sfr   P2M1    =   0x95;
sfr   P2M0    =   0x96;
sfr   P3M1    =   0xb1;
sfr   P3M0    =   0xb2;
sfr   P4M1    =   0xb3;
sfr   P4M0    =   0xb4;
sfr   P5M1    =   0xc9;
sfr   P5M0    =   0xca;

sbit    P12   =   P1^2;
sbit    P13   =   P1^3;

void UART4_Isr() interrupt 18
{
    if (S4CON & 0x02)
    {
      S4CON &= ~0x02;                         //清中断标志
      P12 = !P12;                           //测试端口
    }
    if (S4CON & 0x01)
    {
      S4CON &= ~0x01;                         //清中断标志
//      P13 = !P13;                           //测试端口
                        RX4_buffer = S4BUF;
                        
                        if(RX4_buffer == 0x01 )
                        {
                              P13 = !P13;
                        }
                        
                        
                        
    }
}

void main()
{
    P0M0 = 0x00;
    P0M1 = 0x00;
    P1M0 = 0x00;
    P1M1 = 0x00;
    P2M0 = 0x00;
    P2M1 = 0x00;
    P3M0 = 0x00;
    P3M1 = 0x00;
    P4M0 = 0x00;
    P4M1 = 0x00;
    P5M0 = 0x00;
    P5M1 = 0x00;

    S4CON = 0x10;
    T2L = 0xe8;                                 //65536-11059200/115200/4=0FFE8H
    T2H = 0xff;
    AUXR = 0x14;                              //启动定时器
    IE2 = ES4;                                  //使能串口中断
    EA = 1;
    S4BUF = 0x5a;                               //发送测试数据

    while (1);
}

邮箱 发表于 2024-11-25 13:49:37

把接收的数据发送出去看是什么

mingyuan 发表于 2024-11-25 15:09:26

接收的数据是00

乘风飞扬 发表于 2024-11-25 15:40:35

程序没有问题,通过串口助手发送0x01给MCU,P1.3口会产生翻转。
注意串口助手要使用HEX模式进行数据收发:

mingyuan 发表于 2024-11-25 15:44:21

我这边就是 用串口助手发送0x01给MCU,P1.3口不会产生翻转,感觉很奇怪

神农鼎 发表于 2024-11-25 16:57:45

你上位机用 AIapp-ISP-V6.94Y的串口助手测试下

晓飛飛 发表于 2024-11-25 21:29:34

下载时IRC频率设置的是11.0592MHz吗?

mingyuan 发表于 2024-11-26 12:14:16

神农鼎 发表于 2024-11-25 16:57
你上位机用 AIapp-ISP-V6.94Y的串口助手测试下

我用的6.91

mingyuan 发表于 2024-11-26 12:14:33

晓飛飛 发表于 2024-11-25 21:29
下载时IRC频率设置的是11.0592MHz吗?

是的

mingyuan 发表于 2024-11-26 13:54:32

mingyuan 发表于 2024-11-26 12:14
我用的6.91

我的串口助手用的是SSCOM V5.12.1
页: [1] 2
查看完整版本: 串口4可以收发,用上位机发送一个字节,接收不对