打印
[MCU]

MSP430F5438A系列之串口通讯

[复制链接]
552|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

前言:

        不知不觉,已经毕业快一年!看到某些大佬们在专栏里写了上百篇技术博客,内心还是很膜拜的。职场菜鸟一枚,没有其他挣钱的门路,为了养家糊口,只能默默做技术。以前在学校的时候,学的东西都是皮毛,说白了就是略知一二,还吹牛X。工作就不一样了,特别是做技术,需要为自己所写的每行代码负责。不然,后果很严重!

       串口通信应用广泛,将下位机关键信息通过串口输出到PC机,看起来舒服、用起来方便,在做调试的时候会经常用到。由于项目中使用的控制器是TI公司MSP430F5438A这款芯片,以后所有的程序都是基于该芯片。

本次需要实现的功能:单片机判断串口0收到的字符,输出相应的字符串到上位机。

下面直接上代码:



使用特权

评论回复

相关帖子

沙发
八层楼|  楼主 | 2020-8-5 17:17 | 只看该作者

测试结果如下:发送字符“A”,返回“Hello! Welcome to MSP430F5438A!”;

                        发送字符“F”,返回“Sorry. You are wrong! See you lala!”;                       


       MSP430F5438A有四个串口,使用以上程序模板,仅需修改串口初始化函数以及中断函数的串口号,就可以很方便的移植到其他3个串口中。



使用特权

评论回复
板凳
八层楼|  楼主 | 2020-8-5 17:18 | 只看该作者

下面对时钟源选择和波特率配置进行简要说明:

1、时钟源选择


  UCA0CTL1 |= UCSSEL_1;                     // 选择串口时钟源,CLK = ACLK

     时钟源的选择在寄存器UCA0CTL1中进行配置:


2、波特率配置



  •   UCA0BR0 = 0x03;                           // 两个寄存器配置串口的波特率,32kHz/9600=3.41



  •   UCA0BR1 = 0x00;                           //



  •   UCA0MCTL = UCBRS_3+UCBRF_0;               // UCBRSx=3, UCBRFx=0


波特率寄存器值需根据芯片数据手册中的推荐值进行配置。由于时钟源与波特率的比值(分频系数)一般来说是非整数值,所以UCA0BR1和UCA0BR0用于配置分频系数的整数部分,UCA0MCTL用于分频系数的配置小数部分:


使用特权

评论回复
地板
coshi| | 2020-9-2 17:21 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
5
aoyi| | 2020-9-2 17:22 | 只看该作者
非常的详细

使用特权

评论回复
6
drer| | 2020-9-2 17:22 | 只看该作者
值得参考 呵呵

使用特权

评论回复
7
gwsan| | 2020-9-2 17:22 | 只看该作者
基本上都是一个道理

使用特权

评论回复
8
kxsi| | 2020-9-2 17:22 | 只看该作者
帮楼主顶一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

83

主题

4046

帖子

2

粉丝