RH850开发板StarterKit示例程序分析--R_UART_Init();串口初始化

本文将开始分析定时器OSTM0初始化的代码,其他已发布的代码分析可参看以下链接
一、系统时钟初始化R_SYSTEM_ClockInit();
二、定时器初始化R_SYSTEM_TimerInit();

email:1256153255@qq.com

website for get 瑞萨RH850开发板 and 瑞萨E1仿真器
在这里插入图片描述

言归正传开始介绍本文的内容。

3、UART初始化
在这里插入图片描述
Code segment 3.1
在这里插入图片描述
在这里插入图片描述
图3.1
从上面可知,RH850F1L的LIN和UART是共用的,因此LIN和UART不能同时使用。
Code segment 3.1->Line86,将port0_2设置为输出模式,用于UART的TX。从图3.1的Alternate Mode表可知,P0_2的 2nd Alternative Mode的Output是RLIN30TX。
Code segment 3.1->Line87,将port0_3设置为输入模式,用于UART的RX。从图3.1的Alternate Mode表可知,P0_3的 2nd Alternative Mode的Input是RLIN30RX。

Code segment 3.1->Line89:函数R_RLIN30_UartInit()展开。
Code segment 3.2是UART寄存器的初始化配置,包括禁能LIN,设置波特率、停止位等。
在这里插入图片描述
Code segment 3.2
Code segment 3.1->Line266,禁能UART的RX和TX
在这里插入图片描述
图3.2
Code segment 3.2->Line267,调整为LIN Reset模式
在这里插入图片描述
图3.3
在这里插入图片描述
图3.4
Code segment 3.2->Line270,RLN30LMD=0x01u;
RLN30LMD的bit1 bit0 = 01,表示将LIN/UART共用模式调整为UART模式
在这里插入图片描述
图3.5
Code segment 3.2->Line274串口参数配置
UBLS=0,UART数据位长8bit
UBOS = 0:LSB First
USBLS:停止位长1bit
UPS[1:0]=00,无奇偶校验
URPS=0,接收正常输出,不用发转
UTPS=0,发送正常输出,不用发转
在这里插入图片描述
图3.6
Code segment 3.2->Line282无error检测
在这里插入图片描述
图3.7
Code segment 3.2->Line285 bit sampleing count和prescaler clock设置
NSPB[3:0]=5(0101) → 6 samplings
LPRS[2:0]=0(000) → 不分频
在这里插入图片描述
图3.8
在这里插入图片描述
图3.9
Code segment 3.2->Line289 设置波特率
到了这里应该也会有朋友要问了,这个0x02B5(693)值和9600bps的波特率有什么关系,不急不急,慢慢来分析。
从图3.9得知
baud rate = frequency * RLN3nLWBR.LPRS[2:0] ÷ (RLN3nLBRP01 + 1) ÷ RLN3nLWBR.NSPB[3:0]
= 40MHz * (1/1) ÷ (0x02B5+1) ÷ 6
≈ 9600bps

Code segment 3.2->Line294 取消LIN Reset模式
在Code segment 3.2->Line267设置为LIN Reset模式,此处取消设置
Code segment 3.2->Line298 使能UART的TX和RX
在Code segment 3.2->Line266设置为禁能UART的TX和RX,此处打开。

在这里插入图片描述
图3.10
Code segment 3.1 ->Line93 使能UART发送中断MASK
*IC_ptr &= ~0x80;将bit7置为0,使能UART中断处理
在这里插入图片描述
图3.11
Code segment 3.1 ->Line92 使能UART发送中断
*IC_ptr |= 0x40;将bit6置为1,使能中断向量表中的UART中断

到此为止,UART的初始化设置已全部分析完成。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值