打印
[其它应用]

求sh79f084 串口demo

[复制链接]
1007|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 | 只看该作者
试了一下,没成功,不知道是哪里的问题?

使用特权

评论回复
5
jlyuan| | 2022-8-6 14:53 | 只看该作者
还有什么现象?能再详细描述下吗?

使用特权

评论回复
6
xxrs|  楼主 | 2022-8-6 14:55 | 只看该作者
代码增加了        
    RCAP2L = TL2;
    RCAP2H = TH2;
通讯中断进去了,只中断3次,因该中断15次进去。

使用特权

评论回复
7
xxrs|  楼主 | 2022-8-6 15:07 | 只看该作者
搞定了,呵呵,犯了低级错误……

使用特权

评论回复
8
tpgf| | 2022-9-4 16:39 | 只看该作者
想要实现什么功能呢

使用特权

评论回复
9
qcliu| | 2022-9-4 19:42 | 只看该作者
实际波特率是多少啊

使用特权

评论回复
10
drer| | 2022-9-4 20:11 | 只看该作者
失败的具体现象是什么呢

使用特权

评论回复
11
coshi| | 2022-9-4 20:32 | 只看该作者
串口用定时器干嘛

使用特权

评论回复
12
kxsi| | 2022-9-4 20:41 | 只看该作者
是定时器没有成功 还是串口没有成功啊

使用特权

评论回复
13
wiba| | 2022-9-4 20:51 | 只看该作者
能正常进入中断函数吗

使用特权

评论回复
14
Henryko| | 2022-9-4 21:41 | 只看该作者
定时器还是串口问题啊?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

405

主题

7415

帖子

1

粉丝