查看: 6477|回复: 7

[原创] 【从51到M0+】 Uart

[复制链接]
  • TA的每日心情
    慵懒
    2019-7-22 13:56
  • 签到天数: 38 天

    连续签到: 1 天

    [LV.5]常住居民I

    20

    主题

    644

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1834
    最后登录
    2020-10-13
    发表于 2016-11-19 14:06:15 | 显示全部楼层 |阅读模式
    本帖最后由 邹姆斯特朗 于 2016-11-19 14:06 编辑

    软件平台:keil5.14
    硬件平台:LPC824Lite
    目的:利用串口发送字符串。

    .

    STC89C51
          在51单片机中,只有一个串口。它是一个可编程的全双工串行通信接口,它可用作异步通信方式,共有四种工作方式。初始化步骤主要为:
    1.设置定时器1的工作方式(用来提供波特率)
    2.设置串口的工作方式
    3.设置波特率
    4.开总中断,开串口中断
    5.启动定时器1



    LPC824
             824拥有三个串口,UART0\UART1\UART2。主要性能可以在官方datasheet中查看,这里就不重复累述了。现在我需要用UART0以指定的波特率向上位机发送数据,应该如何操作?


    首先,通过开关矩阵分配好UART0的Txd引脚和Rxd引脚。
    其次,我需要开启UART0的时钟,然后设置加载在其上的时钟频率大小,时钟来自于系统主频率的分频,所以我需要做的就是设置一个分频系数。
    然后,设置UART0的数据帧格式,以及波特率。
    下来,使能UART0。
    最后,发送数据。



           开始考虑到利用寄存器来开发的,但是把datasheet的UART部分看了几遍之后,发觉挺麻烦的,目前波特率的计算配置还在研究中,所以先用库函数来实现串口发送功能。
    1. /**************************************************************
    2. ** 名称   : main(void)
    3. ** 描述   : mian函数      
    4. ** 参数   :   
    5. **                              
    6. ** 返回值 :   无
    7. ***************************************************************/
    8. int main(void)
    9. {


    10.         //Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_SWM);//使能开关矩阵时钟,文档中说上电默认打开的

    11.         Chip_SWM_MovablePinAssign(SWM_U0_TXD_O, 4);//开关矩阵分配串口0的引脚
    12.         Chip_SWM_MovablePinAssign(SWM_U0_RXD_I, 0);

    13.         Chip_Clock_DisablePeriphClock(SYSCTL_CLOCK_SWM);//关闭开关矩阵时钟,降低功耗

    14.         
    15.         Chip_UART_Init(LPC_USART0);   //使能串口时钟
    16.         Chip_Clock_SetUARTClockDiv(1);//设置UART时钟分频器,1即是主系统时钟不分频
    17.         Chip_UART_ConfigData(LPC_USART0, UART_CFG_DATALEN_8 | UART_CFG_PARITY_NONE | UART_CFG_STOPLEN_1);//8数据位,无奇偶校验,1停止位
    18.         Chip_UART_SetBaud(LPC_USART0, 115200);   //波特率115200
    19.         Chip_UART_Enable(LPC_USART0);     //使能串口
    20.         
    21.         Board_UARTPutSTR("UART:\n      1209Lab\n");
    22.         
    23. }
    复制代码
    UART.jpg






    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16841
    最后登录
    1970-1-1
    发表于 2016-11-19 21:00:14 | 显示全部楼层
    不错   
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-10-17 08:07
  • 签到天数: 273 天

    连续签到: 1 天

    [LV.8]以坛为家I

    74

    主题

    2338

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    7517
    最后登录
    2021-8-30
    发表于 2016-11-20 10:06:23 | 显示全部楼层
    软件不错,没广告就更好了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-24 08:30
  • 签到天数: 50 天

    连续签到: 1 天

    [LV.5]常住居民I

    22

    主题

    817

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1713
    最后登录
    2019-12-7
    发表于 2016-11-20 10:25:05 | 显示全部楼层
    不错,值得表扬
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-10-11 11:01
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    0

    主题

    16

    帖子

    0

    注册会员

    Rank: 2

    积分
    62
    最后登录
    2019-4-3
    发表于 2016-11-21 08:40:25 | 显示全部楼层
    从最简单的地方入手一步一步的了解
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-1-24 08:47
  • 签到天数: 49 天

    连续签到: 1 天

    [LV.5]常住居民I

    0

    主题

    524

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1267
    最后登录
    2017-4-19
    发表于 2016-11-21 09:43:47 | 显示全部楼层
    谢谢分析                       
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-12-5 23:17
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    2

    主题

    24

    帖子

    0

    注册会员

    Rank: 2

    积分
    149
    最后登录
    2017-7-11
    发表于 2017-1-17 10:24:13 | 显示全部楼层
    楼主,我用你的源码放在工程里,然后发送数据给PC,为什么接收到的是乱码呢?可能是什么原因,能否解答一下。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2022-6-3 10:27
  • 签到天数: 131 天

    连续签到: 1 天

    [LV.7]常住居民III

    19

    主题

    519

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1620
    最后登录
    2022-6-26
    发表于 2017-1-19 16:45:43 | 显示全部楼层
    flyking93 发表于 2017-1-17 10:24
    楼主,我用你的源码放在工程里,然后发送数据给PC,为什么接收到的是乱码呢?可能是什么原因,能否解答一下 ...

    波特率选错了
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-8-27 08:48 , Processed in 0.104758 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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