void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct); uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx); uint8_t GPIO_ReadOutputDataBit(GPIO_T...
登录后复制//输出&输入关键函数 __STATIC_INLINE uint32_t LL_GPIO_ReadInputPort(GPIO_TypeDef *GPIOx);/* 读取输入电平信息 读输入寄存器IDR */ __STATIC_INLINE void LL_GPIO_WriteOutputPort(GPIO_TypeDef *GPIOx,uint32_t PortValue);/* 控制引脚输出高/低电平 写输出寄存器ODR */ __STATIC_INLINE ...
所以我们左键Cubemx上的PA1引脚 改成OutPut 然后在左边可以看见一些GPIO的配置文件 根据第五个GPIO的别名,Cubemx会自动帮我们给PA1起个别名,所以会极大的方便我们阅读与编写代码。当你在Cubemx配置好之后,就可以不用打开原理图去查找相对于的IO口了。 至此 我们的LED灯基本配置完毕 点击右上角的生成文件即可 点击O...
比如读写IO口: __STATIC_INLINE uint32_t LL_GPIO_ReadOutputPort(GPIO_TypeDef *GPIOx) { return (uint32_t)(READ_REG(GPIOx->ODR)); } __STATIC_INLINE void LL_GPIO_SetOutputPin(GPIO_TypeDef *GPIOx, uint32_t PinMask) { WRITE_REG(GPIOx->BSRR, (PinMask >> GPIO_PIN_MASK_POS) & 0x...
__STATIC_INLINE uint32_t LL_GPIO_ReadOutputPort(GPIO_TypeDef *GPIOx){ return (uint32_t)(READ_REG(GPIOx->ODR));} __STATIC_INLINE void LL_GPIO_SetOutputPin(GPIO_TypeDef *GPIOx, uint32_t PinMask){ WRITE_REG(GPIOx->BSRR, (PinMask >> GPIO_PIN_MASK_POS) & 0x0000FFFFU);} ...
LL驱动库可以使用不基于任何句柄对象(RCC、common HAL、flash、GPIO)的HAL驱动API; 当没有使用HAL Init/DeInit并且被LL的宏取代时,InitMsp()将不被调用,这个需要在用户程序中自己实现; 如果未使用进程API而是通过LL API来执行相应的功能,则不会调用回调函数,并且应由用户自己来执行处理和错误管理; ...
GPIO_InitStruct.Alternate=LL_GPIO_AF_1; LL_GPIO_Init(GPIOA,&GPIO_InitStruct); /* Peripheral clock enable */ LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_I2C1); /* I2C1 interrupt Init */ NVIC_SetPriority(I2C1_IRQn,0); NVIC_EnableIRQ(I2C1_IRQn); ...
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; GPIO_InitStruct.Alternate = LL_GPIO_AF_0; LL_GPIO_Init(GPIOA,&GPIO_InitStruct); /* SPI1 参数配置 */ SPI_InitStruct.TransferDirection = LL_SPI_FULL_DUPLEX; ...
#define GPIO_SEL_OFFSET (0x100/4)//===产品身份标识 #define UID_BASE 0x00100E74U //=...
读操作使用的是read函数,调用了驱动程序里的my_gpio_read方法。读取到的数据(8位)先存在一个char型数组里,然后将数据拼接成32位整数,并以十六进制形式打印出来。ret变量用于显示实际读取到的数据长度。 ret = read(my_gpio_fd, rd8_buf, sizeof(rd8_buf)); ...