1.7.8.1、串口Tx、Rx对应的GPIO的初始化
给GPA0CON的相应bit位赋值为相应值,用C语言位操作来完成。
1.7.8.2、UCON、ULCON、UMCON、UFCON等主要控制寄存器
依据上节中分析的值进行依次设置即可。
1.7.8.3、波特率的计算和设置
(1)第一步,用PCLK_PSYS和目标波特率去计算DIV_VAL: DIV_VAL = (PCLK / (bps x 16)) ?1
(2)第二步,UBRDIV0寄存器中写入DIV_VAL的整数部分
(3)第三步,用小数部分*16得到1个个数,查表得uBDIVSLOT0寄存器的设置值
1.7.8.4、串口发送和接收函数的编写
(1)写发送函数,主要发送前要用while循环等待发送缓冲区为空才能发送。
1.7.8.5、综合调试
注意Makefile的修改。
1.7.8.6、扩展练习-更改波特率后再调试
给GPA0CON的相应bit位赋值为相应值,用C语言位操作来完成。
1.7.8.2、UCON、ULCON、UMCON、UFCON等主要控制寄存器
依据上节中分析的值进行依次设置即可。
1.7.8.3、波特率的计算和设置
(1)第一步,用PCLK_PSYS和目标波特率去计算DIV_VAL: DIV_VAL = (PCLK / (bps x 16)) ?1
(2)第二步,UBRDIV0寄存器中写入DIV_VAL的整数部分
(3)第三步,用小数部分*16得到1个个数,查表得uBDIVSLOT0寄存器的设置值
1.7.8.4、串口发送和接收函数的编写
(1)写发送函数,主要发送前要用while循环等待发送缓冲区为空才能发送。
1.7.8.5、综合调试
注意Makefile的修改。
1.7.8.6、扩展练习-更改波特率后再调试
自己练习。注意程序中改了波特率后,SecureCRT也要相应修改,不然收不到东西。
数据手册中的资料,
The receiver detects(检测) overrun(溢出) error, parity error, frame error and break condition, each of which sets an error flag.
Frame error indicates that the received data does not have a valid(有效的) stop bit.