欢迎来到天天文库
浏览记录
ID:19547886
大小:412.50 KB
页数:13页
时间:2018-10-03
《uart通信程序_中断方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、UART通信程序中断实现方法——发送中断与接收中断声明:本文著作权归电子科技大学中山学院嵌入式系统实验室所有著作人:邓春健UART通信程序——发送中断程序回忆:P297页使用查询方式从串口发送多个字节数据char*str=“helloworld”;for(i=0;i<=9;i++)UART0_SendByte(str[i]);voidUART0_SendByte(uint8dat){U0THR=dat;while((U0LSR&0x40)==0);}主函数uint8SEND_STRING[]="HelloWorld!r
2、n";uint8*str;intmain(void){IRQEnable();UART0_Init();UART0_INT_Init();str=SEND_STRING;UART0_SendByte(*str++);while(1);return(0);}通信参数设置voidUART0_Init(void){uint16Fdiv;PINSEL0=0x00000005;U0LCR=0x83;Fdiv=(Fpclk/16)/9600;U0DLM=Fdiv/256;U0DLL=Fdiv%256;U0LCR=0x03;}UART中
3、断设置voidUART0_INT_Init(void){U0IER=2;U0FCR=1;VICIntSelect=0;VICVectCntl0=0x20
4、6;VICVectAddr0=(int)UART0_ISR;VICIntEnable=1<<6;}UART中断服务程序void__irqUART0_ISR(){intint_flag;int_flag=U0IIR&0x0f;if(int_flag==2){if(*str==‘ ’)str=SEND_STRING;UART0_SendByte(*str++);}VICVe
5、ctAddr=0;}voidUART0_SendByte(uint8data){U0THR=data;}UART通信程序——发送接收中断程序要求:1.PC和ARM通信,当PC发送10个数据给ARM后,ARM将这10个数据返回给PC2.要求在发送和接收程序都使用中断方法主函数uint8rebuf[20];intre_pointer=0;intsend_pointer=0;intmain(void){IRQEnable();UART0_Init();UART0_INT_Init();while(1);return(0);}通信
6、参数设置voidUART0_Init(void){uint16Fdiv;PINSEL0=0x00000005;U0LCR=0x83;Fdiv=(Fpclk/16)/9600;U0DLM=Fdiv/256;U0DLL=Fdiv%256;U0LCR=0x03;}UART中断设置voidUART0_INT_Init(void){U0IER=3;U0FCR=1;VICIntSelect=0;VICVectCntl0=0x20
7、6;VICVectAddr0=(int)UART0_ISR;VICIntEnable=1<<6;}void
8、__irqUART0_ISR(){intint_flag;int_flag=U0IIR&0x0f;if(int_flag==2){if(send_pointer<=10){send_pointer++;UART0_SendByte(rebuf[send_pointer]);}else{send_pointer=0;}}if(int_flag==4){rebuf[re_pointer]=U0RBR;re_pointer++;if(re_pointer>=10){UART0_SendByte(rebuf[0]);re_poin
9、ter=0;}}VICVectAddr=0;}
此文档下载收益归作者所有