UART实验程序解析

更新时间:2023-12-03 00:46:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

//UART实验程序解析 //头文件

#include #include #include \#include \#include \#include \#include \#include \#include \#include \#include \#include \#include \

//串口接收中断服务程序 void UARTIntHandler(void) {

ui32 ulStatus; //获取中断状态

ulStatus = ROM_UARTIntStatus(UART0_BASE, true); //清除中断标志

ROM_UARTIntClear(UART0_BASE, ulStatus); //直到串口FIFO中没有数据时才退出循环 while(ROM_UARTCharsAvail(UART0_BASE)) {

//读串口接收的字符并回发

ROM_UARTCharPutNonBlocking(UART0_BASE,

ROM_UARTCharGetNonBlocking(UART0_BASE)); } }

//串口发送函数

void UARTSend(const ui8 *pucBuffer, ui32 ulCount) {

while(ulCount--) {

//将要发送的字符写进UART

ROM_UARTCharPutNonBlocking(UART0_BASE, *pucBuffer++); } }

int main(void) {

//使能FPU FPUEnable();

FPULazyStackingEnable();

//设置时钟直接使用外部晶振

ROM_SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);

//使能用到的外设

ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); //配置PA0和PA1为串口0引脚

ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);

//使能中断

ROM_IntMasterEnable();

//配置UART0为115200,8-N-1

ROM_UARTConfigSetExpClk(UART0_BASE, ROM_SysCtlClockGet(), 115200, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE)); //使能串口中断

ROM_IntEnable(INT_UART0);

ROM_UARTIntEnable(UART0_BASE, UART_INT_RX | UART_INT_RT); //发送提示信息

UARTSend((ui8 *)\

while(1) { } }

本文来源:https://www.bwwdw.com/article/od5t.html

Top