NO.12 MSP432进行串口通信
2022-12-20 来源:zhihu
首先,我们要明白什么是串口通信。
串口指的是串行通信,要把CPU并行处理的数据转换成串行处理的数据进行发送。英文是UART。
关于串口使用其实非常简单,使用串口需要至少两台设备进行通信。每台设备要公地(一根线),有一个发送数据端口TX(一根线),有一个接收数据端口RX(一根线)。总共需要三根线进行数据传输。
其中TX只能用来发送数据,RX只能用于接收数据。假设我们有两台设备A和B,在AB之间实现串口通信需要将TXA和RXB连接,将RXA和TXB连接。简单说就是,你这个发送端发送的数据要送到人家接收端口,你的接收端口接收人家发送过来的数据。可以同时进行,这叫串口。两台设备要能够进行通信的话,一定要有相同的配置,波特率,检验位,停止位一定要一致。这些名词的具体概念大家自行百度,我这里只讲该如何在MSP432上实现串口的通信。
如果要在MSP432上进行配置的话,为了方便快捷,可以在Sysfg文件进行快速配置。
这时,我们的波特率,检验位,停止位都已配置完成,串口名称也配置完成。这时候我们可以打开自动生成的配置文件查看。
#include 'ti_drivers_config.h'
我们可以看到,我们串口的信息都已经在该头文件中
我们要使用TiDrivers下的串口特别简单,首先我们要引入这个头文件。
#include 然后再定义一个静态全局变量display,这样在我们整个C程序中都是用这个串口。 static Display_Handle display; 要初始化串口非常简单,照抄源码就可以。 /* Call driver init functions */ Display_init(); display = Display_open(Display_Type_UART, NULL); if (display == NULL) { while (1); } 那我们该如何调用呢?一句话就可以,比如我们要发送100这个数字。我们就这样写。 Display_printf(display, 0, 0, '%d',100);//向串口发射100这个数字 比如我们要按一次按键,发送一次100,我们就在按键回调函数内这样写。 /* * ======== gpioButtonFxn0 ======== * Callback function for the GPIO interrupt on CONFIG_GPIO_BUTTON_0. */ void gpioButtonFxn0(uint_least8_t index) { /* Clear the GPIO interrupt and toggle an LED */ GPIO_toggle(CONFIG_GPIO_LED_0); Display_printf(display, 0, 0, '%d',100);//向串口发射100这个数字 } 那么我们的程序开发就到此结束了。大家可以在串口调试助手中查看我们的实验结果。 对了,CCS内自带串口终端。可以省去大家自己使用别人的串口调试助手,直接在编程界面查看串口,真的很方便。 下面我来简单介绍下如何连接这个Terminal。 首先我们在工具箱内打开找到这个小工具 我们点击进入配置 配置好相应的波特率,检验位,停止位后点击OK,在显示栏就会显示接收的数据。 这里由于我懒得再把开发板拿出来了,所以显示没有串口(Closed),如果成功连接,就不会出现Closed。 好了,今天的分享就到这里。有时间大家一定要看看TIDrivers提供的帮助文档,比我的详细多了。