msp432p401R单片机用什么型号的数据线(msp430单片机选型)

msp432p401R单片机用什么型号的数据线(msp430单片机选型)所用单片机型号 MSP432P401r 今日继续我的 MSP432 电赛速成之路 今日学习的是 串口收发 因为 KEIL 仿真需要占用一个串口 所以此处学习多路的串口收发 以达到既能仿真 又不影响 MSP432 向上位机发送串口数据 串口通讯对于对于单片机的调试运行也有着非常重要的作用 通过 UART 可以实现多设备的通讯 实现更复杂功能的实现 UART 的基本原理在此不作过多的赘述

大家好,我是讯享网,很高兴认识大家。



所用单片机型号:MSP432P401r

今日继续我的MSP432电赛速成之路,今日学习的是:

串口收发                                                                                     

因为KEIL仿真需要占用一个串口,所以此处学习多路的串口收发,

以达到既能仿真,又不影响MSP432向上位机发送串口数据。

串口通讯对于对于单片机的调试运行也有着非常重要的作用,

通过UART可以实现多设备的通讯,实现更复杂功能的实现。

UART的基本原理在此不作过多的赘述.

此文章主要围绕欲实现的功能是:

向上位机用 串口A2 收发上位机传来的数据,同时还能用 KEIL在另一个 串口A0 进行仿真。

用到的绿色盒子是  USB转RS232/RS485/TTL UART通信模块

芯片型号:MSP432P401R


讯享网

https://download.csdn.net/download/_/?spm=1001.2014.3001.5503

MSP432串口资源 串口 RXD TXD EUSCI_A0_BASE P1^2 P1^3 EUSCI_A1_BASE P2^2 P2^3 EUSCI_A2_BASE P3^2 P3^3 EUSCI_A3_BASE P9^6 P9^7

查阅芯片原理图发现  EUSCI_A0_BASE   串口是通过跳线帽连接到Debug调试器的:

 左侧的是连接了仿真芯片,右边是MSP432芯片,理论上拔掉跳线帽是可以使用A0串口对外收发了,但下载调试就会出问题的,因此多数时候,除了不在仿真时向上位机发送数据,其余情况不建议使用A0串口。

左侧的仿真芯片又连接在了USB上,因此与USB对应的、插入USB能给上位机传数据的串口就是A0

 所以我们不能再去 使用 A0串口来向上位机发送我们的数据了,因为A0是可能要被KEIL仿真占用的。

于是我们需要寻找其余串口来发送数据给上位机:

此处我将 USB转RS232/RS485/TTL UART通信模块 连接了EUSCI_A2_BASE串口的   TXD与RXD

此处有一接线方式的注意点十分重要:

USB转RS232/RS485/TTL UART通信模块 的   TXD  要接串口的  RXD

USB转RS232/RS485/TTL UART通信模块的    RXD  要接串口的  TXD

PS:如何找到launchpad上的 串口A1的俩个引脚:EUSCI_A1_BASE 

1~5在uart.h库文件中,6~7在interrupt.h库文件中.

如需使用,请勿忘记调用添加头文件

1.初始化串口模块:

 
  
讯享网

2.串口使能模块:

讯享网

3.开启串口相关中断:

 

4.获取数据:

讯享网

5.发送数据:

 

6.开启串口端口中断:

讯享网

7.开启总中断:

 

                       0.配置时钟

                       1.配置GPIO复用

                       2.配置结构体

                       3.初始化串口

                       4.开启串口

                       5.开启串口相关中断

                       6.开启串口端口中断

                       7.开启总中断

                       8.编写UART ISR

             PS: 程序在读取寄存器后会自动清除中断标志位。

我们先新建打开一个空项目,空项目例程在此获取:

https://download.csdn.net/download/_/?spm=1001.2014.3001.5503

 如若这个链接获取不了例程

就从bilibili的mRNA的视频去获取,这里贴出视频传送门,以及空项目工程路径:

(新)1-1 课程资料获取 配置开发环境_哔哩哔哩_bilibili

 

找到了空项目复制到别处并改名,就可以自己进行编程了;

1.首先把例程的usart.c中的 串口配置函数完整复制下来:

复制整个void uart_inint(uint32_t baudRate  )

这个函数括号中的参数  uint32_t baudRate 表示的是要设置的波特率

 2.粘贴在同一头文件下,并改名:

我改成了 void uart2_init(uint32_t baudRate)

表示对串口A2进行得初始化.

 3.别忘了对其在usart.h文件进行声明:

不声明就没法调用哦!

 对刚才复制的函数是用来初始化A0的,为了将其改为初始化A2的函数,

我们还需要进行如下一些参数设置的更改:

波特率设置为,初始化的引脚改为A2串口的引脚,开启A2串口引脚的复用

为此我们还要按以下步骤来配置串口结构体:

4.首先需要计算配置数:

就是这些蓝色框出来的四个参数,它们是需要根据时钟频率和我要的波特率来计算的。

此处时钟48Mhz,波特率

5.于是我们先找到TI官方提供的方便计算的网站:

说明:这个网址是在官方SDK库下的例程代码文件夹里找到的,文件路径如下(很长):

(下面我会贴网址直接传送就好了,此处我只是介绍这是哪里来的):

此网址我会在下面贴出来,各位看官可以不去找他。

讯享网

 就在这个c文件中的注释里可以找到这个网址

此处直接贴出来传送:

MSP430 USCI/EUSCI UART Baudrate Calculator

 6.如此设置好后再点击计算就可以了:

 7.将刚才计算好的数值填充进我们最开始复制改名的串口函数:

 8.修改函数里面的GPIO复用,开启相关中断:

 9.以下配置都加在最开始复制改名的串口函数里面就行了:

       此步的所有语句我是放在函数的最后几行的

 

10编写串口服务函数:

这个函数要有声明,或者像我一样直接写在mian函数下面

讯享网

11.对printf()这个函数,我们需要的话可以进行一些更改:

因为printf()函数调用的是fputc()函数,所以我们需要找到fputc()函数进行更改:

至于printf()函数在嵌入式的介绍,以及fputc()函数的关系,我在这篇文章有所探讨学习:

https://blog.csdn.net/_/article/details/?spm=1001.2014.3001.5502

12.更改fputc()函数,使其对应我们想要设置的串口:

PS:我们可以在空白处打出fputc 然后右键鼠标去找到他

测试串口程序编写效果:

选对端口号,插上后直接发现printf()函数能用串口A2进行输出了:

说明对Printf()函数的改动是有效的

 随后由上位机发送数据进行对串口A2的测试

发现串口A2能正常   接——化——发

说明串口2可以正常使用:

 

最后希望各位看官点赞收藏支持一下!


小讯
上一篇 2025-05-09 07:26
下一篇 2025-04-20 07:31

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/172760.html