KEAZ128学习(四)---UART测试(与K60基本一样)

开发平台

  • 山外KEAZ128
  • 已通过Jlink解锁,解除山外的0-(16-1)K的app
  • 串口使用串口0(A2,A3)
  • 外接CH340(共地)

关于串口

串口应该是我们经常用的东西,它涉及到的方面太多了,它能用在我们平时调试、可以有shell输出,可以用于多机通讯、可以传输文件、驱动ESP8266等、驱动显示屏(串口屏)…等等等,太多了说不完。
对熟悉使用STM32的朋友来说,串口基本上是必备的,在32上,通过固件库来配置串口是件很简单的事情,但串口的基本知识我们还是要知道一下的,虽然说百度上一大堆。
串口:

  • 通讯方式:异步通讯
  • 接口:TXD & RXD

重要的参数

  • 波特率
  • 校验位
  • 停止位
  • 数据位
  • 流控(这个一般调试不常用)

串口的模式:

  • TX模式
  • RX模式
  • TX & RX模式
  • FIFO
  • 回环

串口的中断:

  • FIFO 溢出错误
  • 线中止错误(line-break,即Rx 信号一直为0 的状态,包括校验位和停止位在内)
  • 奇偶校验错误
  • 帧错误(停止位不为1)
  • 接收超时(接收FIFO 已有数据但未满,而后续数据长时间不来)
  • 发送
  • 接收

KEAZ128的串口引脚复用

在KEAZ128的芯片手册上,我们可以找到UART0对应的引脚,
在这里插入图片描述
因为硬件设计原因,我选择使用A2\A3作为串口。

KEAZ128的串口初始化配置

串口使用的步骤:

  • 1、初始化A2/A3的引脚,并复用为串口模式(可以看我前面的GPIO章节)
  • 2、初始化UART的时钟
  • 3、配置UART的寄存器

串口的寄存器描述,在芯片手册上有详细介绍,
KEAZ128学习(四)---UART测试(与K60基本一样)_第1张图片
串口引脚初始化就不说了,在配置UART的步骤:

  • 1、禁用发送接收。
  • 2、配置C1寄存器(配置数据位和校验)。
  • 3、计算波特率,计算公式是:UART 波特率 = UART 模块时钟 / (16 × (SBR[12:0] ))。
  • 4、写入波特率寄存器,对寄存器写入的值是SBR值,因为是[12:0],所以波特率寄存器分为高位和低位。需要分别写入。
  • 5、使能发送和接收。

完成后,串口基本上是可以使用了。

串口输入输出

使用串口时,要自己编写UART_SendData和UART_Receiver
发送时需要检测S1寄存器的TDRE位,检测缓冲区,并向D寄存器写入数据,数据类型时uint8_t。
发送时需要检测S1寄存器的RDRF位,等待接收满,并读取D寄存器的值,获得的数据类型时char型。

效果如下:
KEAZ128学习(四)---UART测试(与K60基本一样)_第2张图片

你可能感兴趣的:(NXP)