LPC1114的自动波特率检测功能,可以用于你能想到的任何应用方面。广泛应用于支持AT命令的产品。
自动波特率检测,需要串口给单片机发送一个字节,该字节的bit1和bit0必须是01或11。例如,发送0x01、0x11、0x51、0x03、0x63等字节都可以。
由于A和a的ascii字符分别是0x41和0x61,符合字符要求,所以发送A或a也可以进行自动波特率检测。
新建一个工程,结构如下图所示:
在main.c文件中,加入以下代码:
#include “lpc11xx.h”
#include “uart.h”
void AutoBaud(void)
{
uint32_t baud;
uint8_t dlm, dll;
LPC_UART->ACR = 0x03; // 允许自动波特率
while ((LPC_UART->ACR & 0x01) != 0x0); // 等待自动波特率测量完成
LPC_UART->ACR |= 0x01 << 8; // 清除自动波特率中断标志
LPC_UART->LCR = 0x83;
dlm = LPC_UART->DLM;
dll = LPC_UART->DLL;
LPC_UART->LCR = 0x03;
LPC_UART->FCR = 0x07; //允许FIFO,清空RxFIFO 和 TxFIFO
baud = ((SystemCoreClock/LPC_SYSCON->SYSAHBCLKDIV) / (16 * (256 * dlm + dll)));
UART_send_byte(baud>>24);
UART_send_byte(baud>>16);
UART_send_byte(baud>>8);
UART_send_byte(baud);
}
int main()
{
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<16); // 使能IOCON时钟
LPC_IOCON->PIO1_6 &= ~0x07;
LPC_IOCON->PIO1_6 |= 0x01; //把P1.6脚设置为RXD
LPC_IOCON->PIO1_7 &= ~0x07;
LPC_IOCON->PIO1_7 |= 0x01; //把P1.7脚设置为TXD
LPC_SYSCON->SYSAHBCLKCTRL &= ~(1<<16); // 禁能IOCON时钟
LPC_SYSCON->UARTCLKDIV = 0x1; //时钟分频值为1
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<12);//允许UART时钟
while(1)
{
AutoBaud();
}
}
第3~20行,定义自动波特率测试函数。
第7行,给ACR寄存器bit0和bit1写1,启动自动波特率,设置为模式1。自动波特率有两种模式,模式0和模式1的区别在于检测波特率发送的字节前两位,模式0,支持发送的字节bit1和bit0为01;模式1,支持发送的字节bit1和bit0为01或11。
第8行,检测ACR寄存器的bit0,当自动波特率检测完成后,会自动把ACR寄存器bit0位清0,所以观察此位就可以判断自动波特率测试是否完成。
第9行,给ACR寄存器bit8写1,清除中断标志。
第10行,打开锁存器访问允许位。
第11、12行,获取除数锁存器的值。
第13行,关闭锁存器的访问允许。
第14行,清空串口收发FIFO。
第15行,计算波特率。
第16行,把检测到的波特率发送到串口。
打开串口调试助手,波特率任意设置,在发送区发送字符A或a,或者十六进制的0x01等符合要求的数据。在接收区就会收到当前设置的波特率。在接收区接收到的数据是十六进制,换算成十进制以后,你会发送波特率和串口调试助手上的波特率有一些差别。例如:4800接收到的数据是4807;9600接收到的数据是9615;115200接收到的数据是115740。这些并不是检测不准确。而是串口波特率的设置存在误差,而这些误差在可以保证正常通信的范围之内。
关键字:cortex lpc1114 自动波特率
引用地址:
cortex m0 lpc1114自动波特率程序
推荐阅读最新更新时间:2024-03-16 15:24
基于M D K RTX的COrtex—M3多任务应用设计
1 MDK RL—RTX和COrtex—M3概述 MDK开发套件源自德国Keil公司,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。MDKRL—IUX是一个实时操作系统(RTOS)内核,完全集成在MDK编译器中。广泛应用于ARM7、ARM9和Cortex-M3设备中。它可以灵活解决多任务调度、维护和时序安排等问题。基于RL—I订X的程序由标准的C语言编写,由Real—View编译器进行编译。操作系统依附于C语言使声明函数更容易,不需要复杂的堆栈和变量结构配置,大大简化了复杂的软件设计,缩短了项目开发周期。 Cortex—M3是一个32位的核。它是首个基于ARMv7M架构,主要针对价格敏感但又具备高系统效
[单片机]
基于ARM Cortex-M3的嵌入式网络播放系统
随着网络应用的普及,为普通嵌入式系统增加网络功能,能更好满足消费者对网络资源的需求。这里采用基于ARM Cortex-M3的微控制器LM3S1138实现一种具备网络功能的播放终端系统,该系统不仅具有良好的播放效果,还可从网络音乐服务器上点播音乐并实时播放。 1 网络播放系统的设计方案 该网络播放系统由服务器、用户终端和音响设备组成。其中,服务器通过以太网提供音乐资源,用户终端通过网络下载音频数据再实现音频解码,音响设备实现音乐播放。图1给出该系统设计框图。 该系统设计采用基于ARM Cortex-M3的控制器LM3Sll38作为主控制器。该控制器改进了代码密度,减少中断延时,实现Thumb-2指令集,并具
[单片机]
stm32mp1 Cortex M4开发篇3:使用GPIO扫描检测按键
写在前面: 本文章为《ARM Cortex-M4裸机开发篇》系列中的一篇,,全系列总计14篇。笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板),Cortex-M4裸机开发篇除了讲M4裸机开发外,还会讲解通过M4控制资源扩展板上的各种传感器执行器模块(包括空气温湿度传感器、LED灯、数码管、蜂鸣器、震动马达、按键中断、风扇等),本篇是M4控制资源扩展板中的一篇。 资源扩展板是FS-MP1A开发板的扩展模块,主要包含了10余种助主流传感器、执行器件、总线控制器件,非常方便项目扩展用。可拓展开发智慧家庭、智能医疗、智能安防、工业控制、图像识别、环境检测等方向的10个左右综合项目,华清远见开发板也将配套提
[单片机]
LPC1114外中断应用
LPC1114微处理器每一个GPIO都可以中断,不过在设计中断时需要注意,下面就举例说明: /************************************************************************************** * global variable **************************************************************************************/ volatile uint8 KeyValue = 0; /************************
[单片机]
Cortex-M3学习日志(五)-- -- DAC实验
终于逮了个忙里偷闲的机会,就再学一下LPC1768的外围功能吧,循序渐进是学习的基本规则,也许LPC1768的DAC与8位单片机16位单片机里面集成的DAC操作类似,但是既然这是懒猫的学习日志,就顺便把DAC再好好复习一下了,或许能品出个什么味来^_^DAC是Digital to Analog Converter的缩写,中文名就是数模转换器,D/A转换器一般由数码寄存器、模拟电子开关电路、解码网络、求和电路及基准电压等几部分组成。如下图所示: 图1-1 DAC原理框图 数字量以串行或并行方式输入,存储于数码寄存器中,数码寄存器输出的名位数码分别控制对应的模拟开关,使数码为1的位在位权网络上产生与其值成正比的电流值或电压值,再由
[单片机]
瞄准物联网,兆易创新性能最高Cortex-M4内核MCU或将上市
集微网消息 市场调查公司IDC预测,到2020年,将有290亿个设备互联互通,物联网将成为一个价值1.46万亿美元的蓝海市场。由于物联网的数据处理、加工、传输都离不开MCU,物联网的高速发展是MCU发展的最大驱动力,并将为MCU带来庞大的市场需求。
据ICInsights市场研究报告显示,2015年全球MCU市场规模达到168亿美元,较去年增长5.6%,出货量255亿颗比去年提升12.4%,预计2016年全球MCU市场出货量将突破300亿颗大关。值得关注的是, 2015年对于32位MCU市场而言是具有重大标志性意义的一年,全球32位MCU出货量超过4/8位MCU与16位MCU出货量的总和。在全球经济衰退的大
[手机便携]
stm32mp1 Cortex M4开发篇8:扩展板LED灯控制实验
写在前面: 本文章为《ARM Cortex-M4裸机开发篇》系列中的一篇,,全系列总计14篇。笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板),Cortex-M4裸机开发篇除了讲M4裸机开发外,还会讲解通过M4控制资源扩展板上的各种传感器执行器模块(包括空气温湿度传感器、LED灯、数码管、蜂鸣器、震动马达、按键中断、风扇等),本篇是M4控制资源扩展板中的一篇。 资源扩展板是FS-MP1A开发板的扩展模块,主要包含了10余种助主流传感器、执行器件、总线控制器件,非常方便项目扩展用。可拓展开发智慧家庭、智能医疗、智能安防、工业控制、图像识别、环境检测等方向的10个左右综合项目,华清远见开发板也将配套提
[单片机]
Cortex内核拿下大半江山,MCU市场征战
随着NXP发布LPC1700系列Cortex-M3内核的MCU,围绕着ARM新宠Cortex内核的竞争已经进入白热化。 目前Cortex-M3处理器内核的授权客户数已达到28家,包括东芝、ST、Ember、Accent、Actel、ENERGY、ADI、NXP、TI、Atmel、Broadcom、Samsung、Zilog和Renesas,其中ST、TI、NXP、Atmel和东芝已经推出基于Cortex-M3的MCU产品。 在这5家中,通过收购Luminary入局的TI和ST属于最先吃螃蟹的人,到现在已经成果初现;NXP则凭借最新的V2版内核100MHz主频的LPC1700系列大有后来居上之势;至于ATMEL和TO
[嵌入式]