找回密码
 立即注册
查看: 50|回复: 0

求助:用的stc32g12k128芯片红外接收irda9600波特率收不到消息

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2026-02-20 19:25:49
已绑定手机

1

主题

0

回帖

5

积分

新手上路

积分
5
发表于 2026-2-20 19:25:49 | 显示全部楼层 |阅读模式
用的芯片是stc32g12k128,还有8k48,用的都是站内的irda代码,红外接收模块是TFBS4652-TT1

配置成115200波特率的时候都正常,收发正常
但是配置成9600的时候只有单片机发出的我正常能收到,单片机收不到我发出的消息,就是中断都没有触发,
至于模块红外模块我用stm32的芯片测试9600波特率是好的,就是stc一直不行
代码部分只是修改了串口部分和irda部分,波特率是#define MAIN_Fosc     11059200L
void UartInit(void)
{
    P_SW1 = (P_SW1 & 0x3F) | (2 << 6);    //0:P30_P31, 1:P36_P37, 2:P16_P17, 3:P43_P44

    SCON = 0x50;    //8位数据,可变波特率
    AUXR |= 0x40;   //定时器时钟1T模式
    AUXR &= 0xFE;   //串口1选择定时器1为波特率发生器
    TMOD &= 0x0F;   //设置定时器模式
    TL1 = TM;       //设置定时初始值
    TH1 = TM>>8;    //设置定时初始值
    ET1 = 0;        //禁止定时器中断
    TR1 = 1;        //定时器1开始计时
    ES  = 1;        //允许中断
}

void IrDAInit(void)
{
    SMOD = 1;           //串口1波特率加倍(必需)
    USARTCR2 = 0x80;    //enable irDA 普通模式
    USARTCR3 = 6;       //SYSclk/(16*6)=115200, 低电模式波特率
    USARTBRL = 0x06;    //SYSclk/(16*115200): 设置波特率115200
    USARTBRH = 0x00;
}


9600波特率用isp生成的
void Uart1_Init(void)        //9600bps@11.0592MHz
{
        SCON = 0x50;                //8位数据,可变波特率
        AUXR |= 0x40;                //定时器时钟1T模式
        AUXR &= 0xFE;                //串口1选择定时器1为波特率发生器
        TMOD &= 0x0F;                //设置定时器模式
        TL1 = 0xE0;                        //设置定时初始值
        TH1 = 0xFE;                        //设置定时初始值
        ET1 = 0;                        //禁止定时器中断
        TR1 = 1;                        //定时器1开始计时
        ES = 1;                                //使能串口1中断

}

void IrDAInit(void)
{
    SMOD = 1;           //串口1波特率加倍(必需)
    USARTCR2 = 0x80;    //enable irDA 普通模式
    USARTCR3 = 72;       //SYSclk/(16*6)=115200, 低电模式波特率
    USARTBRL = 0x48;    //SYSclk/(16*115200): 设置波特率115200
    USARTBRH = 0x00;
}


回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-3-7 16:50 , Processed in 0.098675 second(s), 43 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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