我有以下包含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,但是在MODEROSPEEDR结构中未定义OTYPERPUPDRGPIO_TypeDefSTM32F10x.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/

10-10 14:34