Chinaunix首页 | 论坛 | 博客
  • 博客访问: 59293
  • 博文数量: 11
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 40
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-12 08:37
个人简介

有事可以联系扣扣:577665300

文章分类

全部博文(11)

文章存档

2018年(1)

2017年(6)

2016年(4)

我的朋友

分类: C/C++

2017-06-27 11:34:22

nrf51822串口支持全双工操作、自动流控、uart框图如下:



通常接收到uart数据时都会做一些处理。比如保存到数据,或者对数据做一些判断。

如果uart的波特率设置的很快,mcu的处理速度又不是很快或者是处理的过程比较耗时,那么当uart串口连续过来很多数据时,你在处理第一个数据时,后续的数据就可能丢失。所以通常uart模块都会内置一个很小的硬件接收buff51822就内置了一个6字节的硬件接收buff作为缓存。

Uart一般有两种工作方式  带流控和不带流控的。普通的应用一般只用不带流控就好,只需要TX ,RX,VDD, GND。

首先看一下寄存器的介绍:


ENABLE: 使能uart模块

PSELRXD: 选择GPIO作为RX引脚

PSELTXD: 选择GPIO作为TX引脚

RXD:接收寄存器。从改寄存器中获取uart接收到的数据

TXD: 将需要发送的数据填入该寄存器。

BAUDRATE: 设置波特率。只支持固定的几个波特率。具体查看手册。

CONFIG:用来使能校验(偶校验)和流控。

打开:nRF51_SDK_10.0.0_dc26b5e(1)\examples\peripheral\uart
程序如下、笔者作了注释:

发送 1234q  结果如下:







阅读(1325) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~