您的位置 首页 ADAS

SAM4E单片机之旅——8、UART开始

通信还是比让LED灯闪烁实用得多的。这次试试使用UART,实现开发版和PC间的通信。功能比较简单,就是把PC发向开发版的内容发送回去。这次主要介绍一下UART的配置,至于通信,则使用较为简单的

  通讯仍是比让LED灯闪耀有用得多的。

  这次试试运用UART,完成开发版和PC间的通讯。功用比较简略,便是把PC发向开发版的内容发送回去。这次首要介绍一下UART的装备,至于通讯,则运用较为简略的不断查询UART状况寄存器的循环完成。

  一、 预备工作

  UART作为异步串口通讯协议的一种,所以有必要先要预备一根串口线。用串口线将PC的串口和开发板的DBGU口连起来。

  一起,在PC上需求预备好串口通讯软件。

  二、 电路

    

wps_clip_image-30683

 

  DBGU有两个引脚别离与PA10和PA9相连,这两个复用引脚的外设A即为UART0。

  三、 PIO装备

  需将PA9和PA10引脚两个引脚复用为外设A引脚。

  四、 UART测验

  为测验线缆的衔接、串口通讯软件是否正确,能够先运用UART的测验形式。在运用“主动回应形式”或许“长途回环形式”时,接纳引脚均会和发送引脚相连,即发送端会接纳到发送的数据。

  以下为在UART_MR中挑选“长途回环形式”时的代码:

  1UART0->UART_MR = UART_MR_CHMODE_REMOTE_LOOPBACK;

  若PIO装备、线缆衔接、PC端软件均无问题,则现在在PC端即可接纳到本来发送的数据了。测验成功后留意删去相关的测验代码。

  五、 UART装备

  PMC时启用UART时钟

  1PMC->PMC_PCER0 = (1 << ID_UART0);

  波特率设置

  波特率的计算方法为:MCK / ( CD * 16 ),其间CD在UART_BRGR中设置。

  由于CD有必要为整数,所以能运用的波特率的值就较为有限了。一起,我所运用的串口通讯软件只支撑挑选常用的波特率。而在通讯过程中,对两边波特率的差错有必定的约束(如芯片手册中说到,不引荐USART在波特率差错超越5%时运用)。所以这更减少了波特率的挑选规模。

  在运用默许MCK,即4 MHz的情况下,我挑选运用一个较为慢速的波特率:19200 Hz。将CD的值设为13,使实践波特率为19230 Hz左右,即差错大约为0.1%。

  UART0->UART_BRGR = UART_BRGR_CD( 13 );

  UART操控

  需求在UART操控寄存器(UART_CR)中使能接纳器及发送器:

  UART0->UART_CR = UART_CR_RXEN | UART_CR_TXEN;

  UART数据包格局

  本芯片的UART支撑的格局仅有:8位数据位、发送时中止位为1位。但咱们能够设置校验位,不过为了简略起见,这儿不运用校验:

  1UART0->UART_MR = UART_MR_PAR_NO;

  六、 数据收发

  经过不断查询状况寄存器的相关字段,以了解收发的状况,然后进行操作即可:

  while(1)

  {

  /* 接纳*/

  while ((UART0->UART_SR & UART_SR_RXRDY) == 0)

  ;

  data = UART0->UART_RHR;

  /* 发送*/

  while((UART0->UART_SR & UART_SR_TXRDY) == 0)

  ;

  UART0->UART_THR = data;

  }

  七、 PC端装备

  将PC端的串口通讯格局设置如下:波特率 19200;数据位 8;中止位 1;校验 无。设置完成后即可通讯。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/207397.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部