打印
[技术问答]

92F7003的串口0使用T2做波特率发生器要如何设置?

[复制链接]
791|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pcf00|  楼主 | 2018-6-11 15:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
一笑遥| | 2018-6-12 08:01 | 只看该作者
最简单的方法是uart0直接调用赛元已做好的固件库函数,不用看寄存器配置

使用特权

评论回复
板凳
pcf00|  楼主 | 2018-6-12 09:23 | 只看该作者
一笑遥 发表于 2018-6-12 08:01
最简单的方法是uart0直接调用赛元已做好的固件库函数,不用看寄存器配置:

...

个人比较喜欢直接操作寄存器,这样方便、简洁、效率高、还便以维护

使用特权

评论回复
地板
奔跑吧| | 2018-6-12 20:30 | 只看该作者
这有
void init_uart_mode1(void)
{
    SCON=0X50;         //方式1,允许接收数据
    PCON |=0X80;       //方式1
        T2CON=0x35;               //定时器2产生波特率
        T2MOD=0x03;        //16位自动重载定时器模式
        TMCON=0X04;
        RCAP2H=(65536-20)/256;                       
        RCAP2L=(65536-20)%256;
        TR2=0;
//          ET2=1;
           TR2=1;
        EUART=1;
}

void uart()interrupt 4
{       
        if(TI)
        {
                TI=0;                           //中断进来要把TI清0
        }
        if(RI)                                   //接收中断
        {
                RI=0;                           //中断进来要把RI清0       
                RI_FLAG=1;
        }
}

使用特权

评论回复
5
pcf00|  楼主 | 2018-6-13 10:46 | 只看该作者
奔跑吧 发表于 2018-6-12 20:30
这有
void init_uart_mode1(void)
{

多谢!,试了可用  。

使用特权

评论回复
6
wowu| | 2018-7-12 21:21 | 只看该作者
无论哪种操作都需要了解寄存器

使用特权

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

本版积分规则

54

主题

308

帖子

2

粉丝