常用置位、清零解释及stm32f103寄存器点亮led

常用置位、清零解释及stm32f103寄存器点亮led置位 清 0 amp 清 0 例 unsignedint 0x40010C0C amp 10 先让 1 左移 0 位 即再全部取反 即再与之相与 即 我们知道 1 和 1 或 0 相与都为它自己本身 而 0 和 0 或 1 相与都为 0

大家好,欢迎来到IT知识分享网。

置位:|= , 清0:&=~

清0例:*(unsigned int*)0x40010C0C &=~(1<<0)

先让1左移0位,即

常用置位、清零解释及stm32f103寄存器点亮led

再全部取反,即

 常用置位、清零解释及stm32f103寄存器点亮led

再与之相与,即….

我们知道1和1或0相与都为它自己本身,而0和0或1相与都为0,故达到了清0的作用 

置位例:0xABC6|=((1)<<3)

0xABC6=常用置位、清零解释及stm32f103寄存器点亮led

首先,1左移3位,得到0000 0000 0000 1000

|运算符 0|0=0,0|1=1,1|0=1,1|1=0;即相同为0,不同为1

即1010 1011 1100 1110

如此以来就达到了置位的效果。

PB0使能

GPIOB起始地址

常用置位、清零解释及stm32f103寄存器点亮led

控制ODR寄存器

常用置位、清零解释及stm32f103寄存器点亮led

 配置IO口为输出(控制CRL寄存器)

 常用置位、清零解释及stm32f103寄存器点亮led

 推挽输出主要目的为增强输出的负载能力。推挽既可以输出低电平也可以输出高电平;STM32的引脚一般是高阻态,但是推挽输出默认为低电平。

使能时钟(RCC_APB2ENR)

常用置位、清零解释及stm32f103寄存器点亮led常用置位、清零解释及stm32f103寄存器点亮led代码:

    //打开GPIOB端口的时钟
    *(unsigned int * )0x |= ( (1)<<3 );
    //配置IO口为输出
    *(unsigned int * )0x40010C00 |= ( (1)<<(4*0) );
    //控制ODR寄存器
  *(unsigned int * )0x40010C00 &=~(1<<0);

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/137576.html

(0)
上一篇 2024-11-23 15:45
下一篇 2024-11-23 16:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信