搜索
您的当前位置:首页正文

UART实验程序解析

来源:欧得旅游网
UART实验程序解析

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

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

//串口发送中断服务程序voiduartinthandler(void){

ui32ulstatus;//获取中断状态

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));}}

//串口发送函数

voiduartsend(constui8*pucbuffer,ui32ulcount){

while(ulcount--){

//将要传送的字符写入uart

rom_uartcharputnonblocking(uart0_base,*pucbuffer++);}}

intmain(void){

//使能fpufpuenable();

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);

//CX600X中断

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){}}

因篇幅问题不能全部显示,请点此查看更多更全内容

Top