【STC15】串口使用

一般我们玩单片机都要研究串口,串口一开始最头痛的无非就是波特率和中断

波特率初始化可以用STC-ISP生成代码,比如STC15W408AS这一款单片机,只有串口0和串口2,需要波特率9600,则可以在STC-ISP中输入如下参数

波特率生成

点击生成C代码,即可自动生成如下代码

void UartInit(void)     //9600
{
    SCON = 0x50;        //sfr SCON  = 0x98;
    AUXR |= 0x04;       //sfr   AUXR = 0x8E;
    T2L = 0xE0;         //sfr   T2L  = 0xD7;
    T2H = 0xFE;         //sfr   T2H  = 0xD6;
    AUXR |= 0x10;       //
    ES = 1;                 //sbit ES   = IE^4;  sfr IE    = 0xA8; 
}

其实就是调定时器,两个接口速率相同才可以通讯,核心在于T2L和T2H的值,其他的则是选择哪个口哪个定时器什么的(那些位啊选择啊什么的太复杂就不讲了)

如果直接把上面的内容复制进去,可能会有报错,说找不到像SCON ,AUXR这些地址,其实都在头文件里定义好的,如果没有头文件也可以在ISP中找
头文件获取

获取以后包含进来即可

中断函数的编写如下

void Uart() interrupt 4
{
        ES=0;   
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值