3888|4

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

相邻端口改变后不能进串口中断? [复制链接]

刚刚碰到这样的问题,请教大家啦
P3OUT=0XFE;
P3DIR|=0Xff;//set pin as output
P3SEL |= 0xf0;//P3.4、3.5 uart0, 3.6、3.7 uart1
端口初始化如上,如果之后有
P3OUT &=~ BIT0;
或者
P3OUT |= BIT0;
的语句就会不能进串口的中断,如果没有则串口工作正常。
是哪里的设置有问题呀

最新回复

哈哈,多谢版主啦!就是这个原因。 原来看得不仔细以为是PxOUT需要设置,所以改了半天也不管用。  详情 回复 发表于 2008-12-16 10:15
 
点赞 关注

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
又测试了一下,发现在P3SEL |= 0xf0;语句之前
设置什么状态都没关系,但是在之后如果
P3.0-P3.3任意端口状态发生改变,两个串口的
中断就都不能进了。
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
没有人碰到类似的问题吗?我按这样的设置很容易出现这个问题。
我把串口的初始化程序也贴上来
U0CTL=CHAR+SWRST; // 8-bit character, SWRST=1
ME1 |= UTXE0 + URXE0; // Ena××e USART0 TXD/RXD
UTCTL0 |= SSEL0; // UCLK = ACLK
UBR00 = 0x03; // 32k/9600 - 3.41
UBR10 = 0x00; //
UMCTL0 = 0x4A; // Modulation
UCTL0 &= ~SWRST; // Initialize USART state machine
IE1 |= URXIE0; // Ena××e USART0 RX interrupt

U1CTL = CHAR+SWRST; // 8-bit character
ME2 |= UTXE1 + URXE1; // Ena××e USART1 TXD/RXD
UTCTL1 |= SSEL0; // UCLK = ACLK
UBR01 = 0x03; // 32k/9600 - 3.41
UBR11 = 0x00; //
UMCTL1 = 0x4A; // Modulation
UCTL1 &= ~SWRST; // Initialize USART state machine
IE2 |= URXIE1; // Ena××e USART1 RX interrupt
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

4
 
进不了什么中断?接收中断?那P3DIR|=0Xff就应该错误了。具体设置在dasheet上有。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

5
 
哈哈,多谢版主啦!就是这个原因。
原来看得不仔细以为是PxOUT需要设置,所以改了半天也不管用。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表