tm4c123gxl库函数调包侠养成(四)——————串口发送的基本配置

电赛将至,笔者也是终于想起自己还有个CSDN账号,前来更新一下帖子,顺便复习一下单片机知识。
一、串口概述
串口是单片机不可缺少的功能之一,通过串口单片机可以与电脑或是另一块单片机进行通信,在电赛中,一个复杂的系统必然少不了串口的身影。
TM4c123的串口共有0~7共八个,其中串口0是与单片机的micro USB相连接,这一点与stm32类似(注意:在TM4或stm32中,尽量不要使用与micro USB相连的串口来进行与外界通信,总是会发生一些玄学问题,尤其是像zigbee模块与蓝牙模块,会发生接收错误或发送错误的问题(又是血和泪的教训),因而与micro USB相连的串口用来做一些基本的数据显示就好。
TM4c123gxl中用串口时要在ccs工程中添加一个依赖文件,即utils文件夹中的uartstdio.c文件(在你新建的库中)。
二、基本代码
1、GPIOPinConfigure(GPIO_PA0_U0RX);
GPIOPinConfigure(GPIO_PA1_U0TX);
GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);

与stm32一样,TM4的io口做其他功能时也要复用,这里GPIOPinConfigure() ,GPIOPinTypeUART()两句代码就是设定TM4io口功能的复用。
2、UARTStdioConfig(0, 115200, SysCtlClockGet());
配置串口的波特率。
第一个参数可取0~2,分别对应串口0到串口2。
第二个参数为要设定的串口的波特率为多少,一般是115200或者9600.
第三个参数为系统时钟频率,写上SysCtlClockGet()即可。
这条配置串口的函数很玄学,与之对应的是UARTConfigSetExpClk(UART0_BASE, SysCtlClockGet(), 115200,
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE));
用UARTStdioConfig()配置的函数可以使用UARTprintf()函数,却不能使用UARTCharput()函数,用UARTConfigSetExpClk()配置的函数可以使用UARTCharput()函数,却不能使用UARTprintf()函数。这点在配置时要注意!

3、 UARTprintf(“Turn on the LED1\n”);
就和普通的printf函数一样,支持%d格式这类的输出,有着UARTCharput()无法比拟的优越性,一般用来进行数据的打印。我们一般是串口0配置为UARTStdioConfig格式的,而其他串口配置为UARTConfigSetExpClk格式。
三、基本逻辑
1、使能相应时钟
2、设置串口复用
3、配置串口的波特率
四、代码样例
简单串口发送:

#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_memmap.h"
#include "driverlib/pin_map.h"
#include "driverlib/gpio.h"
#include "driverlib/sysctl.h"
#include "driverlib/uart.h"
#include "utils/uartstdio.h"

void ConfigureUART(uint32_t ui32Baud)
{
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);

 SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);

    GPIOPinConfigure(GPIO_PA0_U0RX);
    GPIOPinConfigure(GPIO_PA1_U0TX);
    GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
        UARTStdioConfig(0, ui32Baud, SysCtlClockGet());
}
void main(void)
{
	

    SysCtlClockSet(SYSCTL_SYSDIV_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
                   SYSCTL_XTAL_16MHZ);

    ConfigureUART(115200);

  
    while(1)
    {

        UARTprintf("Turn on the LED1\n");


		}
   }
发布了10 篇原创文章 · 获赞 14 · 访问量 5504

猜你喜欢

转载自blog.csdn.net/qq_43725844/article/details/96750757