GPIOD->OSPEEDR&=~(0x3<<2*12)
时间: 2024-06-02 20:01:39 浏览: 10
这行代码的作用是将 GPIOD 的输出速度控制寄存器中 pin 12 的位清零,即将其输出速度设置为低速。具体来说,它使用了位运算符号 "~" 和 "<<",其中 "~" 表示按位取反,"<<" 表示左移操作,2*12 表示将数字 12 左移 2 位,即乘以 4,得到 48。因此,该行代码清零了 GPIOD 的输出速度控制寄存器中从第 48 位开始的两个位,即 pin 12 的位。
相关问题
GPIOD->MODER&=~(0x3<<2*12)
这行代码的作用是将 GPIOD 的第 12 个引脚的模式设置为输入模式。具体来说,代码中的 `(0x3<<2*12)` 表示将二进制数 `0x3` 左移 `2*12` 位,也就是移动了 24 位,得到了一个掩码 `0xC0000`。然后使用按位取反的方式将这个掩码的所有位取反,得到了 `0xFFFF3FFF`,并将这个值与 GPIOD->MODER 的值进行按位与操作,从而将 GPIOD 的第 12 个引脚的模式设置为输入模式。
RCC->APB2ENR|=1<<5; //使能PORTD时钟 GPIOD->CRL&=0XFFFFF0FF; GPIOD->CRL|=0X00000300;//PD.2推挽输出 GPIOD->ODR|=1<<2; //PD.2输出高
这代码的作用是使能STM32的PD.2引脚,并将其设置为推挽输出模式,并输出高电平。
具体解释如下:
1. RCC->APB2ENR |= 1<<5;
这行代码是通过设置RCC外设时钟寄存器(APB2ENR)的第5位来使能PORTD时钟。这个寄存器控制着所有APB2总线上的外设时钟开关。
2. GPIOD->CRL &= 0xFFFFF0FF;
GPIOD->CRL |= 0x00000300;
这两行代码是设置PD.2引脚的模式。GPIOD->CRL是GPIO端口D的低八位控制寄存器,用于设置引脚的模式。0xFFFFF0FF是一个掩码,将GPIOD->CRL寄存器的低位8个二进制位置为0,保留高位。0x00000300是设置PD.2为推挽输出模式。
3. GPIOD->ODR |= 1<<2;
这行代码将PD.2引脚的输出寄存器(ODR)的第2位设置为1,即输出高电平。因为PD.2是推挽输出模式,所以输出高电平时,PD.2引脚会输出Vcc电压。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)