在线时间613 小时
UID252169
注册时间2010-12-5
NXP金币0
TA的每日心情 | 开心 2019-2-14 16:49 |
---|
签到天数: 296 天 连续签到: 1 天 [LV.8]以坛为家I
金牌会员
 
- 积分
- 4473
- 最后登录
- 2020-4-14
|
实验八 LPC824改变串口速率实验
实验和讨论的问题如题。
平台:64位Windows 7旗舰版+IAR7.5[查Help显示为7.3.xxx]
工具:MBED+串口调试助手
此文的目的是为了帮助网友们更好的理解MBED的方便和LPC824的易配置和使用。
曾经在网上求助过,LPC824的内存不够了——原因是设置UART口时发生的,当时的想法是想改变UART的波特率——因为LPC的MBED默认的速率为9600,在这么低的串口速率下,主循环程序受此牵连很大,因此必须改变,至少115200吧。
但是,尽管在LPC824程序中看不到UART的设置,在P0_7是可以获得printf的信息显示在PC机的模拟串口上!并且在P0_18口可以有PC机输出讯息到LPC824,说明默认LPC824 UART已经内设置,于是开始以下步骤查找设置的可能:
首先搜全项目中的关键字:9600,一通下来仅仅在注释中有——不成功!
其次搜baud,只有一个函数,但无法设定!
再其次查看与UART有关的.h文件——这是MBED最棒的地方——只有.h文档,结果没有UART只有SPI和Serial与其相关的.h文档,其中的Serial.h可以设置UART,但按照文档案例设置立马产生内存不够的错误提示无法编译!
经过前期的几次碰钉子,分析结果,意外的在搜Serial时发现了另一个UART设置程序:RawSerial.h
查看此函数也可以设置UART,并且有着与Serial.h相似[相同]的案例。于是乎就进行如下配置实验[初始希望两个口挨着,并且暂时没有使用的IO口,P0_16,17],定义对象,在main文件头部写对象
RawSerial prtOut(P0_16,P0_17);//TX,RX
在ioInit函数中设置定义波特率:
prtOut.baud(115200);
编译后下载,发生了有趣的事件:首先程序没有报错——存储不够的报警!其次在原来的GPIO口的P0_7,P0_18没有了响应,尝试用P0_16-->模拟串口的RX,P0_17-->模拟串口的RX上,打开PC的模拟串口软件,将波特率设置到115200,熟悉的结果出现在窗口中。
一鼓作气波特率设置为194000、256000[此速率需要另外一款可以支持到256000的软件],一切Ok!结果见图81,此为194000BPS照片。
细看RawSerial.h,里面有1个字节的getc()和putc()的函数,给将来在NXP单片机上处理二手老式GPS信号成为可能,4路ADC的设置也使手中老式的模拟出口的3轴加速度计采样有望。
|
-
81-194000bps串口传输
|