将GPIO_TypeDef从STM32L1xx转换为STM32F10x

时间:2017-03-17 21:34:44

标签: c embedded stm32

我有以下代码,其中包含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,但MODEROSPEEDROTYPERPUPDR未在GPIO_TypeDef中定义{1}} STM32F10x.h中的{1}}结构。我没有在STM32F10x.h中找到类似的结构,也没有。

是否可以转换上述代码?如果是的话,我应该使用STM32F10x.h中的哪个结构?

1 个答案:

答案 0 :(得分:0)

看看stm32f10x_gpio.h。它具有结构GPIO_InitTypeDef以及用于设置它的相关定义。将您当前拥有的内容翻译成STM32F1所需的内容应该很简单。

我没有下载当前的STM32F1 Cube东西,所以我认为该文件现在可能被称为stm32f1xx_hal_gpio.h(或类似的),但我认为typedef仍然会被称为GPIO_InitTypeDef

STM库有点臃肿,但如果你只需要你需要的东西,我发现它们非常有用。特别是处理器头和#defines。