cortex m0 lpc1114自动波特率程序

发布者:美好回忆最新更新时间:2016-12-09 来源: eefocus关键字:cortex  lpc1114  自动波特率 手机看文章 扫描二维码
随时随地手机看文章

LPC1114的自动波特率检测功能,可以用于你能想到的任何应用方面。广泛应用于支持AT命令的产品。

自动波特率检测,需要串口给单片机发送一个字节,该字节的bit1和bit0必须是01或11。例如,发送0x01、0x11、0x51、0x03、0x63等字节都可以。

由于A和a的ascii字符分别是0x41和0x61,符合字符要求,所以发送A或a也可以进行自动波特率检测。

新建一个工程,结构如下图所示:

新建串口工程

在main.c文件中,加入以下代码:

  1. #include “lpc11xx.h”

  2. #include “uart.h”

  3. void AutoBaud(void)

  4. {

  5. uint32_t baud;

  6. uint8_t dlm,  dll;

  7. LPC_UART->ACR  = 0x03;       // 允许自动波特率

  8. while ((LPC_UART->ACR & 0x01) != 0x0);         // 等待自动波特率测量完成

  9. LPC_UART->ACR |= 0x01 << 8;         // 清除自动波特率中断标志

  10. LPC_UART->LCR = 0x83;

  11. dlm = LPC_UART->DLM;

  12. dll = LPC_UART->DLL;

  13. LPC_UART->LCR = 0x03;

  14. LPC_UART->FCR = 0x07;    //允许FIFO,清空RxFIFO 和 TxFIFO

  15. baud = ((SystemCoreClock/LPC_SYSCON->SYSAHBCLKDIV) / (16 * (256 * dlm + dll)));

  16. UART_send_byte(baud>>24);

  17. UART_send_byte(baud>>16);

  18. UART_send_byte(baud>>8);

  19. UART_send_byte(baud);

  20. }

  21. int main()

  22. {

  23. LPC_SYSCON->SYSAHBCLKCTRL |= (1<<16); // 使能IOCON时钟

  24. LPC_IOCON->PIO1_6 &= ~0x07;

  25. LPC_IOCON->PIO1_6 |= 0x01; //把P1.6脚设置为RXD

  26. LPC_IOCON->PIO1_7 &= ~0x07;

  27. LPC_IOCON->PIO1_7 |= 0x01; //把P1.7脚设置为TXD

  28. LPC_SYSCON->SYSAHBCLKCTRL &= ~(1<<16); // 禁能IOCON时钟

  29. LPC_SYSCON->UARTCLKDIV = 0x1; //时钟分频值为1

  30. LPC_SYSCON->SYSAHBCLKCTRL |= (1<<12);//允许UART时钟

  31. while(1)

  32. {

  33. AutoBaud();

  34. }

  35. }

第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自动波特率程序

上一篇:lpc1114 SystemInit函数解释
下一篇:cortex mo lpc1114 uart串口中断收发数据

推荐阅读最新更新时间: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个左右综合项目,华清远见开发板也将配套提
[单片机]
stm32mp1 <font color='red'>Cortex</font> M4开发篇3:使用GPIO扫描检测按键
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的位在位权网络上产生与其值成正比的电流值或电压值,再由
[单片机]
<font color='red'>Cortex</font>-M3学习日志(五)-- -- DAC实验
瞄准物联网,兆易创新性能最高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个左右综合项目,华清远见开发板也将配套提
[单片机]
stm32mp1 <font color='red'>Cortex</font> M4开发篇8:扩展板LED灯控制实验
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
[嵌入式]
<font color='red'>Cortex</font>内核拿下大半江山,MCU市场征战
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved