串口的常规知识

串口UART初始化:

1、设置输入输出脚。TRTSG,PORTG

2、清中断。U1TXIF,U1RXIF

3、设置中断优先级。U1TXIP

4、U1MODE

5、U1STA

6、U1BRG(波特率)

7、开收发中断


UXSTA: UARTX状态和控制寄存器

UXRXREG: UARTX接收寄存器

UXTXREG: UARTX发送寄存器

UXBRG: UARTX波特率寄存器


通过置位UTXEN使能位(UXSTA<10>)使能发送

当UXTXREG寄存器记载了数据且UXBRG产生了移位时钟后才发送。


设置UART发送:

1、初始化UXBRG寄存器来获取最合适的波特率

2、写PDSEL<1:0>(UXMODE<2:1>)和STSEL(UXMODE<0>)位来设置数据位数,停止位数和奇偶校验选择

3、如需发送中断,置位中断使能控制寄存器(IEC)中的UXTXIE。IPC(中断优选级控制寄存器)中的UXTXIP<2:0>来指定中断优先级。写UTXISEL(UXSTA<15>)来控制发送中断模式

4、使能UART模块(UARTEN(UXMODE<15>)置位)

5、置位UTXEN(UXSTA<10>)来使能发送。。UXTXIF置1.。  UART发送中断时,UXTXIF清零

6、想UXTXREG寄存器中加载数据(开始发送)


TSR移位寄存器中的数据来自于发送FIFO缓冲器UXTXREG中的数据。


总之,当UTXEN(UXSTA<10>)使能发送+UXTXREG加载数据+UXBRG有移位时钟则开始发送。


串口控制:

MODE

STA

波特率BRG

数据REG

串口有查询方式和中断方式。一般采用的是中断方式。


IO口做串口:

配置串口为模式1 SCON=0X50;

位置定时器T1为模式2,即自动重装模式 TMOD &= 0X0F;// 清零T1的控制位

TMOD |= 0X20;//配置T1为模式2

根据波特率计算TH1和TL1的初值(PCON可进行波特率加倍) TH1=256-(11059200/12/32/baud); //计算T1重载值

TL1=TH1;//初值等于重载值

打开定时器控制寄存器TR1让定时器跑起来 ET1=0;//禁止T1中断

TR1=1;//启动T1

T1作为波特率发生器时,千万不能再使能T1的中断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值