查看: 2564|回复: 1

[其他] 怪问题,求助!

[复制链接]

该用户从未签到

48

主题

141

帖子

1

中级会员

Rank: 3Rank: 3

积分
385
最后登录
2020-8-7
发表于 2009-4-20 19:12:36 | 显示全部楼层 |阅读模式
sys_state|=0x0001;          
UCR1 = UCR1_TC0_BITMASK;                     
while( (sys_state&0x0001)!=0)  
{   
    sys_state&=~0x0002;
}
这是一个通讯程序的部分,UCR1 = UCR1_TC0_BITMASK启动发送报文,然后等待接收完数据后退出。通讯收发都是用中断处理的,收完后中断会sys_state&=~0x0001把第0为清0。问题是收完数据后第0位确实请0了,但是sys_state&=~0x0002;又会把第0位变1。也就是sys_state&=~0x0002会影响第0位。在sys_state&=~0x0002;前面加个延时,或者把sys_state定义成32位(uint32)就没问题。有人能帮忙看看怎么回事?我用的是MCF52235
我知道答案 目前已有0人回答
回复

使用道具 举报

该用户从未签到

48

主题

141

帖子

1

中级会员

Rank: 3Rank: 3

积分
385
最后登录
2020-8-7
 楼主| 发表于 2009-4-20 23:29:45 | 显示全部楼层

RE:怪问题,求助!

问题已经解决,尽管没人回答,还是感谢大家。
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2024-4-28 07:46 , Processed in 0.114640 second(s), 21 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表