要用tiva的tm4c单片机实现相同功能,该如何写代码
时间: 2024-03-04 21:47:50 浏览: 152
使用TivaWare库可以方便地实现TM4C单片机的USART串口发送功能。以下是一个简单的例子:
```c
#include <stdint.h>
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#include "driverlib/uart.h"
#define BAUD_RATE 9600
#define UART_MODULE UART0_BASE
void InitUART(void)
{
// 使能UART0和GPIOA模块的时钟
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
// 配置GPIOA0和GPIOA1为UART0的TX和RX引脚
GPIOPinConfigure(GPIO_PA0_U0RX);
GPIOPinConfigure(GPIO_PA1_U0TX);
GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
// 配置UART0的波特率、数据位、停止位等参数
UARTConfigSetExpClk(UART_MODULE, SysCtlClockGet(), BAUD_RATE,
UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE);
}
void UARTSend(const uint8_t *pui8Buffer, uint32_t ui32Count)
{
// 循环发送数据
while(ui32Count--)
{
UARTCharPut(UART_MODULE, *pui8Buffer++);
}
}
int main(void)
{
// 配置系统时钟为80MHz
SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHZ);
InitUART();
// 发送数据
uint8_t data[] = "Hello, world!\n";
UARTSend(data, sizeof(data));
while(1)
{
}
}
```
在这个例子中,使用了TivaWare库中的`SysCtlPeripheralEnable()`函数来使能UART0和GPIOA模块的时钟,使用`GPIOPinConfigure()`函数和`GPIOPinTypeUART()`函数配置GPIOA0和GPIOA1为UART0的TX和RX引脚。使用`UARTConfigSetExpClk()`函数配置UART0的波特率、数据位、停止位等参数。使用`UARTCharPut()`函数循环发送数据。
阅读全文