OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10743|回复: 3

新手 SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk; while(temp&0x01&&!(temp&(1<<16

[复制链接]

8

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2014-3-14
在线时间
0 小时
发表于 2014-4-12 16:25:16 | 显示全部楼层 |阅读模式

新手

SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk;   

while(temp&0x01&&!(temp&(1<<16))分别是什么意思,求详解

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

26

主题

194

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1175
金钱
1175
注册时间
2011-8-20
在线时间
21 小时
发表于 2014-4-12 16:53:41 | 显示全部楼层
回复【楼主位】pengxiaokui:
---------------------------------
SysTick的CTRL寄存器SysTick_CTRL_ENABLE_Msk清0
&=~的意思:例如:A = 0xff;(即A = 1111 1111)  A &= ~(1<<1); 即 A = A & 1111 1101 ,那么A就变成1111 1101了,也就是将A的第2位(右往左数)置0了
SysTick->CTRL的意思: SysTick是个结构体指针,里面有个成员叫CTRL,这个和硬件寄存器的地址正好对应了,也就是操作了这个寄存器
至于怎么和硬件对应的,你看看库源码,就是一个强制转换了
for( int i=0; i<(1.0/0); i++ ) { for( int j=0; j<365; j++) money ++; age ++; if( age > 30 ) ChangeJob( Boss ); } 脸上的痘痘提醒我?我还年轻?口袋的米米告诉我?我仍需努力
回复 支持 1 反对 0

使用道具 举报

8

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2014-3-14
在线时间
0 小时
 楼主| 发表于 2014-4-12 18:40:54 | 显示全部楼层
回复【2楼】subo19920716:
---------------------------------
谢谢,那第二句呢,注释是等待时间到达,其中temp=systick->ctrl,systick->ctrl=0x01;我怎么觉得while里面的内容一直都是1啊,那不就是死循环吗
回复 支持 反对

使用道具 举报

8

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2014-3-14
在线时间
0 小时
 楼主| 发表于 2014-4-12 19:10:17 | 显示全部楼层
回复【2楼】subo19920716:
---------------------------------
明白了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-12 14:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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