您的位置 首页 应用

SAM4E单片机在UART异步串口通信协议中的使用

SAM4E单片机在UART异步串口通信协议中的应用-这次试试使用UART,实现开发版和PC间的通信。功能比较简单,就是把PC发向开发版的内容发送回去。这次主要介绍一下UART的配置,至于通信,则使用较为简单的不断查询UART状态寄存器的循环实现。

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

一、 预备工作

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

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

二、 电路

SAM4E单片机在UART异步串口通讯协议中的运用

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%。

1UART0-》UART_BRGR = UART_BRGR_CD( 13 );

UART操控

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

1UART0-》UART_CR = UART_CR_RXEN | UART_CR_TXEN;

UART数据包格局

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

1UART0-》UART_MR = UART_MR_PAR_NO;

六、 数据收发

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

123456789101112while(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/yingyong/345562.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部