//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){}}
因篇幅问题不能全部显示,请点此查看更多更全内容