我有以下代码,其中包含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
中定义{1}} STM32F10x.h
中的{1}}结构。我没有在STM32F10x.h
中找到类似的结构,也没有。
是否可以转换上述代码?如果是的话,我应该使用STM32F10x.h中的哪个结构?
答案 0 :(得分:0)
看看stm32f10x_gpio.h。它具有结构GPIO_InitTypeDef
以及用于设置它的相关定义。将您当前拥有的内容翻译成STM32F1所需的内容应该很简单。
我没有下载当前的STM32F1 Cube东西,所以我认为该文件现在可能被称为stm32f1xx_hal_gpio.h(或类似的),但我认为typedef仍然会被称为GPIO_InitTypeDef
。
STM库有点臃肿,但如果你只需要你需要的东西,我发现它们非常有用。特别是处理器头和#defines。