{if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)==SET)// 如果按键对应端口为高电平{GPIO_SetBits(GPIOB, GPIO_Pin_5);// 熄灯(LED负极连接PB5,LED正极连接VCC,PB5高电平熄灯)}else// 否则{GPIO_ResetBits(GPIOB, GPIO_Pin_5);// 亮灯}delay_ms(10);// 一些开发板例程当中提供了delay函数,需要通过de...
STM32 GPIOB_PIN3复用功能小分析 SI5326使用了PB3作为软件模拟i2c的时钟信号,但是PB3主功能是JTAG,其I/O功能被禁止,在使用软件模拟I2C,需要开启I/O功能,并禁止JTAG-DP和SW-DP。这需要配置AFIO_MAPR寄存器,具体如下: uint32_t* MAPR = (uint32_t*)(AFIO_BASE+0X04); //取得AFIO_MAPR地址 RCC->APB...
1、首先定义GPIO的初始化类型结构体:GPIO_InitTypeDef GPIO_InitStructure;此结构体的定义是在stm32f10x_gpio.h文件中,其中包括3个成员。 /** * @brief GPIO Init structure definition */ typedef struct { uint16_t GPIO_Pin; /*!< Specifies the GPIO pins to be configured. This parameter can be any...
GPIO_SetBits(GPIOD,GPIO_Pin_3|GPIO_Pin_6); 这里面时钟初始化的是CDG三种端口,下一句注释就说是选择了GPIOD的3,6引脚,是怎么确定的呀?是因为后面这一句么“ GPIO_Init(GPIOD, &GPIO_InitStructure);”? 最佳答案 zuozhongkai 查看完整内容[请看2#楼] 是的,GPIO_InitStructure.GPIO_Pin = GPIO_Pin_...
在讲GPIO之前,我们先看下STM32中的PIN脚类型。 PIN脚类型 PIN类型 - S F407xx中线性调压器为备份域和待机电路以外的所有数字电路供电,调压器输出电压约为 1.2 V。 调压器需要将两个外部电容连接到专用引脚 VCAP_1 和 VCAP_2。 在调压器使能情况下,这两个引脚输出1.2V电压。
GPIO_SetBits(GPIOA , GPIO_Pin_2); GPIO_SetBits(GPIOA , GPIO_Pin_3); Delay(n); /* PA.2 , PA.3输出低电平 */ GPIO_ResetBits(GPIOA , GPIO_Pin_2); GPIO_ResetBits(GPIOA , GPIO_Pin_3); while(1); } /*** * 函数名 : RCC_Configuration * 函数描述 : 设置系统各部分时钟 * ...
//GPIO初始化 void KEY_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; //时钟使能 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOE, ENABLE); //GPIO初始化 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4; ...
PA0是最低位,PA3相对最高 0x05
这个是 或 的意思哈,应为不同GPIO_Pin_X是用不同的逻辑值的,这样只是统一写方便,这是32库的便捷之处,不用你去查找寄存器的具体值
selected */#define GPIO_PIN_MASK0x0000FFFFu/* PIN mask for assert test */ 他们都定义在<STM32F1xx_hal_gpio.H>中,我们可以得知,enum是一个枚举类型,后面的参数都是前一个参数代表的值+1,如果首个参数不初始化默认为0,否则以初始化的值开始+1,每个值都可以初始化,并以初始化的值为准。这样我们就...