查看: 7295|回复: 18

[原创] 4【学习LPC1768库函数】之串口实验

[复制链接]
  • TA的每日心情
    开心
    2019-7-20 09:11
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    30

    主题

    104

    帖子

    0

    高级会员

    Rank: 4

    积分
    642
    最后登录
    2019-12-2
    发表于 2019-4-16 09:47:50 | 显示全部楼层 |阅读模式
    本帖最后由 wbeast 于 2019-4-16 09:49 编辑

    LPC1768有四个串口可以使用,本章用串口0和串口2作为实验,其中串口0配置发送和中断接收。
    TIM截图20190416090849.png
    1. /************************************************************************************************
    2. ** 函数名: void UARTInit( uint32_t PortNum, uint32_t baudrate)
    3. ** 函数功能:串口初始化程序
    4. ** 输入参数: UARTNum 选择串口号,baudrate串口波特率大小
    5. ** 输出参数 :无
    6. ** 返回值:无
    7. *************************************************************************************************/
    8. void UARTInit( uint32_t UARTNum, uint32_t baudrate)
    9. {


    10. if ( UARTNum == 0 )
    11. {
    12. //第一步 设置P0.2 P0.3为串口功能
    13. Chip_IOCON_PinMux(LPC_IOCON, 0, 2, IOCON_MODE_INACT, IOCON_FUNC1);//设置P0.2为串口功能管脚
    14. Chip_IOCON_PinMux(LPC_IOCON, 0, 3, IOCON_MODE_INACT, IOCON_FUNC1);        //设置P0.3为串口功能管脚
    15. //第二步 初始化串口0
    16. Chip_UART_Init(LPC_UART0);//初始化串口0
    17. //第三步 //设置波特率
    18. Chip_UART_SetBaud(LPC_UART0, baudrate);//设置波特率
    19. //第四步 //8 bits, 无校验, 1 个停止位
    20. Chip_UART_ConfigData(LPC_UART0, UART_LCR_WLEN8 | UART_LCR_SBS_1BIT | UART_LCR_PARITY_DIS);// 8 bits, 无校验, 1 个停止位
    21. //第五步 //使能发送
    22. Chip_UART_TXEnable(LPC_UART0);//使能发送
    23. //第六步 //使能接收中断
    24. Chip_UART_IntEnable(LPC_UART0,UART_IIR_INTSTAT_PEND);//使能接收中断
    25. //第七步 ////使能串口0中断
    26. NVIC_EnableIRQ(UART0_IRQn);//使能中断
    27. }
    28. else if ( UARTNum == 2 )
    29. {

    30. Chip_IOCON_PinMux(LPC_IOCON, 0, 10, IOCON_MODE_INACT, IOCON_FUNC1);//设置P0.10为串口功能管脚
    31. Chip_IOCON_PinMux(LPC_IOCON, 0, 11, IOCON_MODE_INACT, IOCON_FUNC1);        //设置P0.11为串口功能管脚        
    32. Chip_UART_Init(LPC_UART2);//初始化串口2
    33. Chip_UART_SetBaud(LPC_UART2, baudrate);//设置波特率
    34. Chip_UART_ConfigData(LPC_UART2, UART_LCR_WLEN8 | UART_LCR_SBS_1BIT | UART_LCR_PARITY_DIS); // 8 bits, 无校验, 1 个停止位
    35. Chip_UART_TXEnable(LPC_UART2);//使能发送



    36. }
    37. }


    38. /************************************************************************************************
    39. ** 函数名:void UART0_SendByte (int ucData)
    40. ** 函数功能:串口0发送字节程序
    41. ** 输入参数:ucData 一个字节数据
    42. ** 输出参数 :无
    43. ** 返回值:无
    44. *************************************************************************************************/
    45. void UART0_SendByte (uint8_t ucData)
    46. {
    47.   //判断发送线是否有数据,没有数据,则可以发送。有数据,等待
    48. while (!(Chip_UART_ReadLineStatus(LPC_UART0) & UART_LSR_THRE)); /*读bit5 0 为有数据,1 为发送完成*/
    49. Chip_UART_SendByte(LPC_UART0,ucData);
    50. }


    51. /************************************************************************************************
    52. ** 函数名: int UART0_GetChar (void)
    53. ** 函数功能:串口0接收字节数据
    54. ** 输入参数:无
    55. ** 输出参数 :无
    56. ** 返回值:一个字节数据
    57. *************************************************************************************************/
    58. int UART0_GetChar (void)
    59. {
    60.   //判断接收线是否有数据,没有数据,则等待。有数据,则读出
    61. while (!(Chip_UART_ReadLineStatus(LPC_UART0) & UART_LSR_RDR)); /*读bit0 0 为空,1 为接收到数据*/
    62. return Chip_UART_ReadByte(LPC_UART0);        
    63. }
    64. /************************************************************************************************
    65. ** 函数名:void UART0_IRQHandler(void)
    66. ** 函数功能:串口0中断服务函数
    67. ** 输入参数:无
    68. ** 输出参数 :无
    69. ** 返回值:无
    70. *************************************************************************************************/
    71. void UART0_IRQHandler(void)
    72. {
    73.          //判断中断接收标志,读取该位,中断标志自动清零
    74.         if(((Chip_UART_ReadIntIDReg(LPC_UART0)>>2&0x01)))
    75.    
    76.                                                                                                          
    77.         buffer[num]=UART0_GetChar();            
    78.                                 num++;
    79.                                 rxd_flag=1;
    80.            
    81.                         
    82.                
    83. }
    复制代码
    【04】LPC1768_串口实验.rar (248.61 KB, 下载次数: 77)
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2019-4-16 15:48:22 | 显示全部楼层
    好一个num的全局变量
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    379

    帖子

    0

    高级会员

    Rank: 4

    积分
    805
    最后登录
    2020-9-5
    发表于 2019-4-18 14:26:46 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2019-5-1 06:15
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    0

    主题

    91

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    207
    最后登录
    2021-8-4
    发表于 2019-4-29 11:10:07 | 显示全部楼层
    谢谢分享
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    3

    主题

    379

    帖子

    0

    高级会员

    Rank: 4

    积分
    805
    最后登录
    2020-9-5
    发表于 2019-6-3 09:44:12 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    3

    主题

    379

    帖子

    0

    高级会员

    Rank: 4

    积分
    805
    最后登录
    2020-9-5
    发表于 2019-6-26 09:39:31 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    3

    主题

    379

    帖子

    0

    高级会员

    Rank: 4

    积分
    805
    最后登录
    2020-9-5
    发表于 2019-7-8 10:03:00 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    3

    主题

    379

    帖子

    0

    高级会员

    Rank: 4

    积分
    805
    最后登录
    2020-9-5
    发表于 2019-7-18 11:11:58 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    3

    主题

    379

    帖子

    0

    高级会员

    Rank: 4

    积分
    805
    最后登录
    2020-9-5
    发表于 2019-7-23 09:51:37 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    3

    主题

    379

    帖子

    0

    高级会员

    Rank: 4

    积分
    805
    最后登录
    2020-9-5
    发表于 2019-7-29 10:56:24 | 显示全部楼层
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-29 03:04 , Processed in 0.174322 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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