在线时间178 小时
UID3096266
注册时间2015-1-27
NXP金币0
TA的每日心情 | 郁闷 2021-3-10 19:44 |
---|
签到天数: 7 天 [LV.3]偶尔看看II
金牌会员
- 积分
- 2018
- 最后登录
- 2023-12-25
|
本帖最后由 MDebug 于 2016-11-11 22:23 编辑
一、LPC824 USART的特点。
Feature如UM10800中所述:
•7,8或9个数据位和1或2个停止位
•同步模式,具有主或从操作。包括数据相位选择和连续时钟选项。
•具有软件地址比较的多处理器/多点(9位)模式。
•RS-485收发器输出使能。
•奇偶校验生成和检查:奇,偶或无。
•在异步模式下软件可选择5到16个时钟的过采样。
•一个发送和一个接收数据缓冲区。
•RTS / CTS用于自动流量控制的硬件信号。软件流控制可以使用Delta CTS检测,发送禁止控制和任何GPIO执行RTS输出。
•可以从单个寄存器读取接收的数据和状态
•中断生成和检测。
•接收数据是3个样本中的2个。一个样品不同时设置状态标志。
•内置波特率发生器,具有自动波特率功能。
•小数速率分频器在所有USART之间共享。
•可用于接收器就绪,发送器就绪,接收器空闲,切换的中断
接收器断点检测,成帧错误,奇偶校验错误,溢出,欠载,增量CTS
检测和接收机采样噪声。
•用于测试数据和流量控制的环回模式。
•USARTn发送和接收功能可以通过系统DMA操作控制器
二、一般配置
配置的一般过程如图所示。
1.在SYSAHBCLKCTRL寄存器中,将位3设置为5以使能时钟寄存器接口。
2.使用PRESETCTRL寄存器清除USART外设复位。
3.在NVIC中#3至#5中启用或禁用USART中断。
4.配置USART引脚功能。
5.配置USART时钟和波特率。
6.发送和接收线连接到DMA请求线。
波特率的计算方法:分两种方式:异步方式和同步方式
0 in the common USART">1.通过在USART中写入值FRGCLKDIV> 0来配置UART时钟小数波特率分频器寄存器。共用USART的分频主时钟。
2.如果需要小数值来获得特定的波特率,请编制小数分频器。小数分频器值是MULT / DIV的分数。 MULT和DIV
值在FRGCTRL寄存器中进行赋值。 DIV值必须为用固定值256赋值。
U_PCLK = FRGCLKDIV /(1+(MULT / DIV))
以下规则适用于MULT和DIV:
- 通过对值为的FRGCTRL寄存器进行编程,始终将DIV设置为2560xFF。
- 将MULT设置为0到255之间的任何值
3.在异步模式下:在USARTn BRG中配置波特率分频器BRGVAL寄存器。波特率分频器将公共USART外设时钟除以a因子16乘以波特率值提供
波特率= U_PCLK / 16 x BRGVAL。
4.在同步模式下:串行时钟为Un_SCLK = U_PCLK / BRGVAL。
三、例程
- #include "mbed.h"
- uint16_t data;
- Serial ser(P0_4, P0_0);
- int main() {
- ser.baud(115200);
- while(1)
- {
- ser.printf("\r\nPlease input:");
- ser.scanf("%d", &dat);
- ser.printf("\r\nThe User input is %d", dat);
- }
- }
复制代码 接收函数在昨天的ADC的帖子中已经讲述。
山东交通学院
|
|