extern void GPIO_x_Set_bits(GPIO_typedef* GPIO_x, uint16 GPIO_PIN_x); extern void GPIO_x_RES_bits(GPIO_typedef* GPIO_x, uint16 GPIO_PIN_x); extern void GPIO_Init(GPIO_typedef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); #endif /*__STM32F10X_GPIO_H__*/ 1. 2. 3. 4. 5. ...
从最后这个操作可以看出使用BSRR寄存器,可以实现8个端口位的同时修改操作。 ***88 问题2: #define SPI_FRAM_CS_LOW GPIOC->BRR = GPIO_Pin_5 #defineSPI_FRAM_CS_HIGH GPIOC->BSRR = GPIO_Pin_5 与 define SPI_FRAM_CS_LOW GPIOC->BRR |= GPIO_Pin_5 #SPI_FRAM_CS_HIGH GPIOC->BSRR...
目录一.GPIO内部结构图1. 核心器件分析2.GPIO八种工作模式二.GPIO寄存器分析1. GPIOx_CRL和GPIOx_CRH寄存器2. GPIOx_IDR和GPIOx_ODR寄存器3. GPIOx_BSRR, GPIOx_BRR和GPIOx_LCKR寄存器三.GPIO外设驱动1. 操作寄存器方式2. 调用固件库(标准库)方式3.GPIO_Init()函数分析.4.GPIO外设 ...
如上图,函数通过对AHB1ENR寄存器的置位来使能或不使能GPIOx端口。接着,IIC_Init()函数对GPIOB上所需用到的引脚Pin8、Pin9进行了初始化设置。设置其Mode即端口模式为普通输出模式;设置其OType即输出类型为推挽输出;设置其Speed即输出速度为100MHz;设置其PuPd即上拉/下拉类型为上拉。
GPIOA->BSRR=1<1;//设置GPIOA.1为高电平GPIOA->BSRR=1<(16+1);//设置GPIOA.1为低电平 操作BSRR寄存器来设置I/O电平的库函数为: //设置一组I/0口中的一个或者多个I/0口为高电平.voidGPIO_SetBits(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin); ...
2个 32 位的数据寄存器 IDR 和 ODR; 1个 32 位的置位/复位寄存器BSRR; 1个 16 位的复位寄存器 BRR; 1个 32 位的锁存寄存器 LCKR; 第二个参数是GPIO_Init:它的类型是GPIO_InitTypeDef *,指向结构体变量(GPIO_InitTypeDef )的指针,其中GPIO_InitTypeDef结构体包含了Pin,mode ,pull,speed等几个成员变量,分别...
GPIO_InitTypeDef GPIO_Instrcture;2.使能端口时钟,打开外设的输出时钟端口 RCC_APB2periphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//第一个参数确定I/O口,第二个确定状态ENABLE或DISABLE 原函数 void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState) { /* Check the parameters *...
staticvoidSetSysClockTo72(void){__IOuint32_tStartUpCounter=0,HSEStatus=0;/*SYSCLK,HCLK,PCLK2andPCLK1configuration*//*EnableHSE*/RCC->CR|=((uint32_t)RCC_CR_HSEON);do{HSEStatus=RCC->CR&RCC_CR_HSERDY;StartUpCounter++;}while((HSEStatus==0)&&(StartUpCounter!=HSE_STARTUP_TIMEOUT));...
gpio输出高电平函数 gpio输出高电平函数 GPIO(General Purpose Input/Output)是通用输入/输出引脚的缩写,是指可以被程序控制的可编程输入输出引脚。在嵌入式系统中,GPIO经常用来连接外部的传感器和执行器,比如LED灯,按键等。通过GPIO的输入输出,可以实现对外部设备的控制和监控。通常,GPIO可以配置为输入或输出。在...
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) { uint32_t currentmode = 0x00, currentpin = 0x00, pinpos = 0x00, pos = 0x00; uint32_t tmpreg = 0x00, pinmask = 0x00; /* Check the parameters assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); ...