我有以下包含STM32L1xx.h
的代码:
GPIO_TypeDef* gpioport ... // Declaration.
gpioport->MODER = (gpioport->MODER & ~(3 << pin2)) | (((gpiocfg >> GPIOCFG_MODE_SHIFT ) & 3) << pin2);
gpioport->OSPEEDR = (gpioport->OSPEEDR & ~(3 << pin2)) | (((gpiocfg >> GPIOCFG_OSPEED_SHIFT) & 3) << pin2);
gpioport->OTYPER = (gpioport->OTYPER & ~(1 << pin )) | (((gpiocfg >> GPIOCFG_OTYPE_SHIFT ) & 1) << pin );
gpioport->PUPDR = (gpioport->PUPDR & ~(3 << pin2)) | (((gpiocfg >> GPIOCFG_PUPD_SHIFT ) & 3) << pin2);
我想用
STM32L1xx.h
替换STM32F10x.h
,但是在MODER
的OSPEEDR
结构中未定义OTYPER
,PUPDR
,GPIO_TypeDef
和STM32F10x.h
。我也没有在STM32F10x.h
中找到类似的结构。是否可以转换上面的代码?如果是这样,我应该使用STM32F10x.h中的哪个结构?
最佳答案
看看stm32f10x_gpio.h。它具有结构GPIO_InitTypeDef
以及用于设置它的相关定义。将当前的需求转换为STM32F1的需求应该很简单。
我没有下载当前的STM32F1 Cube内容,因此我认为该文件现在可能称为stm32f1xx_hal_gpio.h(或类似名称),但我认为typedef仍将称为GPIO_InitTypeDef
。
STM库有点肿,但是如果您随心所欲,我会发现它们非常有用。特别是处理器标头和#defines。
关于c - 将GPIO_TypeDef从STM32L1xx转换为STM32F10x,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42867455/