找回密码
 立即注册
查看: 503|回复: 11

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

[复制链接]
已绑定手机

1

主题

6

回帖

33

积分

新手上路

积分
33
发表于 2024-11-25 13:26:25 | 显示全部楼层 |阅读模式
本帖最后由 DebugLab 于 2024-11-25 13:47 编辑

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


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

unsigned char xdata RX4_buffer[5]={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[0] = S4BUF;
                        
                        if(RX4_buffer[0] == 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);
}

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:238
  • 最近打卡:2025-05-01 13:11:43

22

主题

283

回帖

901

积分

高级会员

积分
901
发表于 2024-11-25 13:49:37 来自手机 | 显示全部楼层
把接收的数据发送出去看是什么
回复 支持 反对

使用道具 举报 送花

已绑定手机

1

主题

6

回帖

33

积分

新手上路

积分
33
发表于 2024-11-25 15:09:26 | 显示全部楼层
接收的数据是00
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2024-11-25 15:40:35 | 显示全部楼层
程序没有问题,通过串口助手发送0x01给MCU,P1.3口会产生翻转。
注意串口助手要使用HEX模式进行数据收发:
截图202411251539157474.jpg
回复 支持 反对

使用道具 举报 送花

已绑定手机

1

主题

6

回帖

33

积分

新手上路

积分
33
发表于 2024-11-25 15:44:21 | 显示全部楼层
我这边就是 用串口助手发送0x01给MCU,P1.3口不会产生翻转,感觉很奇怪
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2024-11-25 16:57:45 | 显示全部楼层
你上位机用 AIapp-ISP-V6.94Y的串口助手测试下
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-11-25 21:29:34 | 显示全部楼层
下载时IRC频率设置的是11.0592MHz吗?
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

已绑定手机

1

主题

6

回帖

33

积分

新手上路

积分
33
发表于 2024-11-26 12:14:16 | 显示全部楼层
神*** 发表于 2024-11-25 16:57
你上位机用 AIapp-ISP-V6.94Y的串口助手测试下

我用的6.91
回复 支持 反对

使用道具 举报 送花

已绑定手机

1

主题

6

回帖

33

积分

新手上路

积分
33
发表于 2024-11-26 12:14:33 | 显示全部楼层
晓*** 发表于 2024-11-25 21:29
下载时IRC频率设置的是11.0592MHz吗?

是的
回复 支持 反对

使用道具 举报 送花

已绑定手机

1

主题

6

回帖

33

积分

新手上路

积分
33
发表于 2024-11-26 13:54:32 | 显示全部楼层

我的串口助手用的是SSCOM V5.12.1
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:50 , Processed in 0.195260 second(s), 116 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表