查看: 4787|回复: 4

[原创] LPC824改变串口速率实验以及特性简介

[复制链接]
  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
    发表于 2016-10-12 09:33:45 | 显示全部楼层 |阅读模式
    本帖最后由 zhjb1 于 2016-10-12 11:04 编辑

    LPC824改变串口速率实验
    实验和讨论的问题如题。
    平台:64位Windows 7旗舰版+IAR7.5[查Help显示为7.3.xxx]
    工具:MBED+串口调试助手
    此文的目的是为了帮助网友们更好的理解MBED的方便和LPC824的易配置和使用,当然不要将速度问题放在首位。
    曾经在网上求助过,LPC824的内存不够了——原因是设置UART口时发生的,当时的想法是想改变UART的波特率——因为LPC的MBED默认的速率为9600,在这么低的串口速率下,主循环程序受此牵连很大,因此必须改变,至少152000吧。
    但是,尽管在LPC824程序中看不到UART的设置,在P0_7是可以获得printf的信息显示在PC机的模拟串口上!并且在P0_18口可以有PC机输出讯息到LPC824,说明默认LPC824UART已经内设置,于是开始以下步骤查找设置的可能位置以便更改:
    首先搜全项目中的关键字:9600,一通下来仅仅在注释中有——不成功!
    其次搜baud,只有一个函数,但无法设定!
    再其次查看与UART有关的.h文件——这是MBED最棒的地方——只有.h文档,结果没有UART只有SPI和Serial与其相关的.h文档,其中的Serial.h可以设置UART,但按照文档案例设置立马产生内存不够的错误提示无法编译!
    经过前期的几次碰钉子,分析结果,意外的在搜Serial时发现了另一个UART设置程序:RawSerial.h
    查看此函数也可以设置UART,并且有着与Serial.h相似[相同]的案例。于是乎就进行如下配置实验[初始希望两个口挨着,并且暂时没有使用的IO口,P0_16,17],定义对象和设置:
    RawSerial prtOut(P0_16,P0_17);//TX,RX——此函数来自RawSerial.h
    定义波特率:
    prtOut.baud(115200);//——此函数来自SerialBase.h
    事件发生了:
    首先程序没有报错——存储不够的报警!其次在原来的GPIO口的P0_7,18没有了响应,尝试用P0_16-->模拟串口的RX,P0_17-->模拟串口的RX上,打开PC的模拟串口软件,将波特率设置到115200,熟悉的结果出现在窗口中。
    一鼓作气波特率设置为194000、256000[此速率需要另外一款可以支持到256000的软件],一切Ok!
    细看RawSerial.h,里面有1个字节的getc()和putc()的函数,给我在NXP单片机上处理二手老式GPS信号成为可能,4路ADC的设置也使手中老式的模拟出口的3轴加速度计采样有望。
    总结:
    1. 结果此UART的设置成功。
    2. 在设置LPC824以及在K64F、KS22等可以表明MBED具有函数明确、设置简单[几乎都有案例语句]、可用性极强的开发工具。
    3. LPC824的交叉开关再加上MBED的可用性,使得GPIO的设置就像FPGA[CPLD]一样,但比他们设置还要简单——也许玩单片机远远多于玩可编程阵列之故。
    4. 最后也最有用的是学习过VS C++、VS C#的人入手可能会更容易,因为他的所有操作就是:
    先定义对象、而后设置属性和方法,采用.连接符。当输入连接符.时,其对象可能的属性和方法都一一列出以供选择,输入(或[后,其变量自动列出以供选择。
    看完此文,不想一试吗?唯一不足的就是,MBED支持的板和芯片还是有限的,没有的板或芯片只能寻找代替品或相似品,实在没有只能走老路了。
    下边的照片一共使用了16个IO口,其中4路ADC,3路IO脉冲检测,2路PWM输出,1路脉冲输出,1对UART,4线串口LCD[带背光改造后的6903——仅仅1mA电流],定时器1个提供100uS基准,程序调成0.1S的控制时基,至少还有P0_10~15富裕。

    194000串口接收.jpg

    LED是两路PWM共同控制率红LED互相渐变亮暗

    LED是两路PWM共同控制率红LED互相渐变亮暗

    简单说明

    简单说明
    回复

    使用道具 举报

  • TA的每日心情

    2025-5-29 09:38
  • 签到天数: 632 天

    连续签到: 1 天

    [LV.9]以坛为家II

    94

    主题

    1639

    帖子

    2

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    4470

    热心会员

    最后登录
    2025-6-10
    发表于 2016-10-12 09:53:29 | 显示全部楼层
    不错,楼主辛苦了。
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    555

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    1343
    最后登录
    2018-10-23
    发表于 2016-10-12 09:54:03 | 显示全部楼层
    谢谢分享,学习。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    37

    帖子

    0

    注册会员

    Rank: 2

    积分
    100
    最后登录
    2016-10-23
    发表于 2016-10-12 13:55:49 | 显示全部楼层
    谢谢分享,学习。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-3-29 09:54
  • 签到天数: 418 天

    连续签到: 1 天

    [LV.9]以坛为家II

    21

    主题

    2928

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3307
    最后登录
    2021-4-7
    发表于 2016-10-12 15:07:40 | 显示全部楼层
    辛苦了。。。
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-19 06:27 , Processed in 0.078626 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表