找回密码
 立即注册
查看: 69|回复: 4

测试一箭双雕,第二个串口不通 大佬们帮忙分析一下问题在那埋在

[复制链接]

17

主题

179

回帖

647

积分

高级会员

积分
647
发表于 2026-9-1 09:42:39 | 显示全部楼层 |阅读模式
#include "STC8H.h"

#define BAUD_RATE  115200UL
#define SYS_FREQ   24000000UL

unsigned char ch;

void DelayMs(unsigned int ms)
{
    unsigned int i, j;
    for(i = ms; i > 0; i--)
        for(j = 1100U; j > 0; j--);
}

// UART2:P1.0(RX2)接收,P1.1(TX2)发送
void UART2_Init(void)
{
    // P1.0 P1.1 准双向口
    P1M0 &= ~(1U << 0);
    P1M1 &= ~(1U << 0);
    P1M0 &= ~(1U << 1);
    P1M1 &= ~(1U << 1);

    P1 |= (1U << 1);

    P_SW2 &= ~(1U << 0);      //UART2映射P1.0 P1.1

    S2CON = 0x50;             //REN2=1 允许接收

    //定时器2波特率
    T2L  = (unsigned char)(65536UL - SYS_FREQ / BAUD_RATE);
    T2H  = (unsigned char)((65536UL - SYS_FREQ / BAUD_RATE) >> 8);
    AUXR |= 0x10;             //启动T2

    IE2 |= 0x04;              //串口2中断使能
    EA = 1;
}

void UART2_SendByte(unsigned char dat)
{
    S2BUF = dat;
    while( !(S2CON & 0x02) );
    S2CON &= ~0x02;
}

void UART2_SendStr(unsigned char *s)
{
    while(*s)
    {
        UART2_SendByte(*s++);
    }
}

//串口2中断 中断号8
void UART2_ISR(void) interrupt 8
{
    if(S2CON & 0x01)
    {
        S2CON &= ~0x01;
        ch = S2BUF;
        UART2_SendByte(ch);
    }
}

void main(void)
{
    UART2_Init();     //先初始化串口
    DelayMs(200);     //再延时等待硬件稳定

    UART2_SendStr((unsigned char*)"OK\r\n");  //现在打印OK

    while(1)
    {
        ;
    }
}

回复

使用道具 举报 送花

已绑定手机

74

主题

1003

回帖

3645

积分

论坛元老

业余的DIY玩家

积分
3645
发表于 2026-9-1 09:57:07 | 显示全部楼层
查定时器和波特率
还有接线对应
线尽量短
业余就玩玩
回复

使用道具 举报 送花

17

主题

179

回帖

647

积分

高级会员

积分
647
 楼主| 发表于 2026-9-1 10:12:12 | 显示全部楼层
狂热*** 发表于 2026-9-1 09:57
查定时器和波特率
还有接线对应
线尽量短

前二点都是对的  线也不长20CM的样子
回复

使用道具 举报 送花

已绑定手机

7

主题

410

回帖

6598

积分

论坛元老

积分
6598
发表于 2026-9-1 10:45:14 | 显示全部楼层
有示波器没?建议循环发送,用示波器看一下TX2的波形.
波特率似乎不对哦,应该有个4倍关系.
定时器2有没有12分频你再确认一下.

手册中的范例程序你再对比一下.
回复

使用道具 举报 送花

17

主题

179

回帖

647

积分

高级会员

积分
647
 楼主| 发表于 2026-9-1 11:18:32 | 显示全部楼层
lcws*** 发表于 2026-9-1 10:45
有示波器没?建议循环发送,用示波器看一下TX2的波形.
波特率似乎不对哦,应该有个4倍关系.
定时器2有没有12分 ...

我用示波器看看 还有手册  谢谢了
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-9-19 22:07 , Processed in 0.071692 second(s), 62 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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