[其它应用] 求sh79f084 串口demo

[复制链接]
1246|13
 楼主| xxrs 发表于 2022-8-6 14:38 | 显示全部楼层 |阅读模式
求sh79f084 串口demo,sh79f084 串口用T2定时器,没成功。哪里不对?

void Init_Timer2(void)
{        
        EA=0;
        //Enter_Bank1;                                                                        
        T2CON        =        Bin(00110000);
                 
        TL2 = (65536-16600000/32/2400) & 0x00ff;
    TH2 = ((65536-16600000/32/2400)>>8)&0x00ff;
        TF2          =         0;                                                //
        TR2        =         1;                                                // 开启定时器2        
                                                                                   
         //IEN0        |=        Bin(00010000);         //EUART
         //IEN1        =        Bin(00000000);         
         //Enter_Bank0;
         ET2 = 0;

         EA        =        1;                                                        //开启全中断
}
void EUART_Init(void)
{
         EA=0;  
         //Enter_Bank0;
                                             
          PCON =Bin(00000000);               
          SCON        =        Bin(01010000);                        //        方式1                  
          RI=0;                                       
        
          TI=0;                                                                                                  
          REN=1;                           //打开串口0接收中断
      ES0 =1;                           //使能UART0中断

        EA        =        1;
}
wangzsa 发表于 2022-8-6 14:40 | 显示全部楼层

感谢楼主的分享, 不错的代码,楼主是高手。
llljh 发表于 2022-8-6 14:49 | 显示全部楼层
void Uart_Config(u16 baud)
{
    u32 tmp;
    u8 T2RH = 0;    //T2重载值的高字节
    u8 T2RL = 0;    //T2重载值的低字节
        
    tmp = SYS_MCLK / 32 / baud;
    tmp = 65536 - tmp;
    T2RH = (u8)(tmp >> 8);
    T2RL = (u8)tmp;

    PCON &= 0xBF;        //X0XX XXXX D6 = 0,SCON[7:5]工作方式SM0 SM1 SM2
    SCON = 0x50;        //0101 0000 方式1,波特率为系统时钟的1/12
    RCAP2L = T2RL;
    RCAP2H = T2RH;
    T2MOD &= 0x00;
    T2MOD |= 0x01;
    T2CON |= 0x34;  //0011 0000 使用T2溢出率作为波特率发生器 开始T2
    ES0 = 1;
}
 楼主| xxrs 发表于 2022-8-6 14:51 | 显示全部楼层
试了一下,没成功,不知道是哪里的问题?
jlyuan 发表于 2022-8-6 14:53 | 显示全部楼层
还有什么现象?能再详细描述下吗?
 楼主| xxrs 发表于 2022-8-6 14:55 | 显示全部楼层
代码增加了        
    RCAP2L = TL2;
    RCAP2H = TH2;
通讯中断进去了,只中断3次,因该中断15次进去。
 楼主| xxrs 发表于 2022-8-6 15:07 | 显示全部楼层
搞定了,呵呵,犯了低级错误……
tpgf 发表于 2022-9-4 16:39 | 显示全部楼层
想要实现什么功能呢
qcliu 发表于 2022-9-4 19:42 | 显示全部楼层
实际波特率是多少啊
drer 发表于 2022-9-4 20:11 | 显示全部楼层
失败的具体现象是什么呢
coshi 发表于 2022-9-4 20:32 | 显示全部楼层
串口用定时器干嘛
kxsi 发表于 2022-9-4 20:41 | 显示全部楼层
是定时器没有成功 还是串口没有成功啊
wiba 发表于 2022-9-4 20:51 | 显示全部楼层
能正常进入中断函数吗
Henryko 发表于 2022-9-4 21:41 | 显示全部楼层
定时器还是串口问题啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

405

主题

7415

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部
0