串行通信(异步串行I/0模式)的应用实例
3.1应用实例的说明
异步串行I/O模式通信的方法如下(主时钟输入振荡频率设为16MHz)。
(1)使用UART0。在串行数据输出时使用P14/TxDo管脚,在串行数据输入时使用Pl5/RxDo管脚。
(1) 通信格式如下(SFR设定的详细内容可参照4.3.2节):
传送速度 :约9615bps 传送数据长度 :8位
停止位 :1位 校验位 :偶数校验
其传送格式如图4.14所示,传送速度的设定如图4.15所示。
(1) 发送数据时,给变量trn_buf[req_cnt](发送缓冲区)设定任意值,并将变量req_cnt (发送请求计数)加1(最大值为7)。实际发送时,当变量trn_cnt(发送计数) 和变量rec_cnt不一致时,将变量trn_buf[trn_cnt】的内容写到发送缓冲寄存器uOtbl,发送数据,然后将变量trn_cnt加1。
(2) 接收处理时,根据接收中断请求ir_sOric判断接收是否结束。如果接收结束,就 将接收缓冲寄存器uOrbl的内容保存到变量rcv_buf[rcv_cnt](接收缓冲区),然后将变量rcv_cnt(接收计数)加1。
在本示例程序中,由于SFR的位配置的原因,可能会操作不使用的功能位。必须根据用户系统的使用情况设定这些位的设定值。
3.2主要寄存器的初始设定
(1)UART0发送/接收模式寄存器的设定(如图4.16所示)。
(1) UART0发送/接收控制寄存器O的设定(如图4.17所示)。
图4.17 UART0发送,接收控制寄存器0的设定
3.3使用的管脚
异步串行I/0模式使用的管脚和功能如表4.4所示。
3.4使用的存储器
3.5流程图
本应用实例由以卜几个功能模块组成:
3.6 参考程序
发表评论 评论 (0 个评论)