完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
当我设置发送中断使能时,在接收中断函数中,程序在while (!(IFG1 & UTXIFG0);这句话停止,而我不设置发送中断使能时候,程序就可以通过这句话,请问这是为什么
程序如下:。。。。。。。。。。。。。。。。。 #include void delayms(unsigned int z) { unsigned int x,y; for(x=8000;x>0;x--) //延迟语句 for(y=Z;y>0;y--); } void main() { WDTCTL = WDTPW + WDTHOLD; //关狗 UCTL0 |=CHAR;//字符长度为8; UTCTL0 |=SSEL0;//选择时钟为ACLK UBR00 =0x03; UBR10 =0x00; //波特率的设置,波特率为9600 UMCTL0 =0x4A; ME1 |=UTXE0+URXE0;//两个发送数据段使能 P3SEL |=0x30; //P3.4-3.5用作TXD/RXD P3DIR |=0x10; //P3.4用作输出端口 UCTL0 &=~SWRST; // 初始化UART状态机清,除串口复位信号(打开串口) IE1 |=URXIE0+UTXIE0;//打开中断使能 TXBUF0 = 0X01; _EINT(); while(1) { P2OUT =0Xff; } } #pragma vector=UART0TX_VECTOR //接受数据产生的中断 __interrupt void uarto1() { while ((IFG1 & UTXIFG0));//等待单片机数据传输完毕,不知道这句话可以不可以省略 P2DIR=0xff; P2OUT =0x00; delayms(8000); P2OUT =0Xff; delayms(8000); } #pragma vector=UART0RX_VECTOR __interrupt void uartotx() { while (!(IFG1 & UTXIFG0));//等待单片机数据接受完毕,并且等待发送寄存器是否可以存入数据, P2DIR=0xff; //我不明白的是当发送中断也开启的时候,程序就停在上一句那里了,即UTXFIGO=0; //不开启的时候就可以通过了 P2OUT =RXBUF0; //只有当UTXFIGO 等于1的时候才可以存入数据 delayms(8000); TXBUF0=RXBUF0; } |
|
相关推荐
1个回答
|
|
//我不明白的是当发送中断也开启的时候,程序就停在上一句那里了,即UTXFIGO=0;
---------------------------------------- 看看这段话有没有用,就是说,看看此时UTXIE0是“0”还是“1”: A transfer is triggered when the UTXIFG0 flag is set. UTXIFG0 is automatically reset when the transfer starts. If UTXIE0 is set, the UTXIFG0 flag will not trigger a transfer. |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式-ELFBOARD-RGB LCD屏接口的PCB设计要点
346 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-spi编程示例之spi编写程序
786 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第三十七章 image图像对比实验
756 浏览 0 评论
961 浏览 1 评论
652 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11674 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 06:10 , Processed in 0.561848 second(s), Total 73, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号