Arduino库和STM32的寄存器、标准库、HAL库、LL库开发比较之GPIO
标题: Arduino库和STM32的寄存器、标准库、HAL库、LL库开发比较之GPIO
作者: 梦幻之心星 sky-seeker@qq.com
标签: [#Arduino,#STM32,#库,#开发]
日期: 2021-07-01
背景说明
STM32开发方式
- 寄存器(STM32Snippets):直接操作寄存器
- SPL库(Standard Peripheral Libraries):标准外设库,将寄存器操作封装成函数
- HAL库(Hardware Abstraction Layer):硬件抽象层,将功能操作封装成函数
- LL库(Low Layer):底层库,直接操作寄存器
操作说明
操作步骤
Arduino
- 配置引脚
- 操作引脚
STM32
- 配置时钟
- 配置引脚
- 操作引脚
操作方法
Arduino
//读操作
pinMode(3,INPUT);
digitalRead(3);
//写操作
pinMode(3,OUTPUT);
digitalWrite(3);
STM32
寄存器
//1.配置时钟
RCC_APB2ENR |= (1<<3);
//2.配置引脚
GPIOB_CRL &= ~( 0x0F<< (4*0));
GPIOB_CRL |= (1<<4*0);
//3.操作引脚
GPIOB_ODR &= (0<<0);
标准库
//1.配置时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
//2.配置引脚
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOB, &GPIO_InitStructure);
//3.操作引脚
ReadValue = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_7);
HAL库(支持图形化初始配置)
//1.配置时钟
//宏定义方式
__HAL_RCC_GPIOA_CLK_ENABLE();
//2.配置引脚
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStruct.Pin = GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//3.操作引脚
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET);
LL库(支持图形化初始配置)
//1.配置时钟
//该函数位于stm32f1xx_ll_bus.h
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA);
//2.配置引脚
LL_GPIO_InitTypeDef LL_GPIO_InitStructure;
LL_GPIO_InitStructure.Pin = LL_GPIO_PIN_1;
LL_GPIO_InitStructure.Mode = LL_GPIO_MODE_OUTPUT;
LL_GPIO_InitStructure.Speed = LL_GPIO_SPEED_FREQ_LOW;
LL_GPIO_InitStructure.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
LL_GPIO_InitStructure.Pull = LL_GPIO_PULL_UP;
LL_GPIO_Init(GPIOA, &LL_GPIO_InitStructure);
//3.操作引脚
LL_GPIO_SetOutputPin(GPIOA,LL_GPIO_PIN_1);
GPIO函数库
Arduino 数字 I/O
digitalRead(pin)
digitalWrite(pin, value)
pinMode(pin, mode)
STM32
标准库(STM32F103xx)
- 复位和时钟设置(RCC)
void RCC_DeInit(void);
void RCC_HSEConfig(uint32_t RCC_HSE);
ErrorStatus RCC_WaitForHSEStartUp(void);
void RCC_AdjustHSICalibrationValue(uint8_t HSICalibrationValue);
void RCC_HSICmd(FunctionalState NewState);
void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul);
void RCC_PLLCmd(FunctionalState NewState);
void RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource);
uint8_t RCC_GetSYSCLKSource(void);
void RCC_HCLKConfig(uint32_t RCC_SYSCLK);
void RCC_PCLK1Config(uint32_t RCC_HCLK);
void RCC_PCLK2Config(uint32_t RCC_HCLK);
void RCC_ITConfig(uint8_t RCC_IT, FunctionalState NewState);
void RCC_USBCLKConfig(uint32_t RCC_USBCLKSource);
void RCC_ADCCLKConfig(uint32_t RCC_PCLK2);
void RCC_LSEConfig(uint8_t RCC_LSE);
void RCC_LSICmd(FunctionalState NewState);
void RCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource);
void RCC_RTCCLKCmd(FunctionalState NewState);
void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks);
void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState);
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);
void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
void RCC_APB1PeriphResetCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);
void RCC_BackupResetCmd(FunctionalState NewState);
void RCC_ClockSecuritySystemCmd(FunctionalState NewState);
void RCC_MCOConfig(uint8_t RCC_MCO);
FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG);
void RCC_ClearFlag(void);
ITStatus RCC_GetITStatus(uint8_t RCC_IT);
void RCC_ClearITPendingBit(uint8_t RCC_IT);
- 通用输入/输出(GPIO)
void GPIO_DeInit(GPIO_TypeDef* GPIOx);
void GPIO_AFIODeInit(void);
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_TypeDef* GPIOx, uint16_t GPIO_Pin);
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);
void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);
void GPIO_EventOutputCmd(FunctionalState NewState);
void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);
void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);
void GPIO_ETH_MediaInterfaceConfig(uint32_t GPIO_ETH_MediaInterface);
HAL库
- 复位和时钟设置(RCC)
HAL_StatusTypeDef HAL_RCC_DeInit(void);
HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct);
HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency);
void HAL_RCC_MCOConfig(uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32_t RCC_MCODiv);
void HAL_RCC_EnableCSS(void);
void HAL_RCC_DisableCSS(void);
uint32_t HAL_RCC_GetSysClockFreq(void);
uint32_t HAL_RCC_GetHCLKFreq(void);
uint32_t HAL_RCC_GetPCLK1Freq(void);
uint32_t HAL_RCC_GetPCLK2Freq(void);
void HAL_RCC_GetOscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct);
void HAL_RCC_GetClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t *pFLatency);
void HAL_RCC_NMI_IRQHandler(void);
void HAL_RCC_CSSCallback(void);
HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit);
void HAL_RCCEx_GetPeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit);
uint32_t HAL_RCCEx_GetPeriphCLKFreq(uint32_t PeriphClk);
- 通用输入/输出(GPIO)
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init);
void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin);
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin); void HAL_GPIOEx_ConfigEventout(uint32_t GPIO_PortSource, uint32_t GPIO_PinSource);
void HAL_GPIOEx_EnableEventout(void);
void HAL_GPIOEx_DisableEventout(void);
LL库
复位和时钟设置(RCC)
void LL_RCC_GetSystemClocksFreq(LL_RCC_ClocksTypeDef *RCC_Clocks);
uint32_t LL_RCC_GetUSBClockFreq(uint32_t USBxSource);
uint32_t LL_RCC_GetADCClockFreq(uint32_t ADCxSource);
__STATIC_INLINE void LL_RCC_HSE_EnableCSS(void)
__STATIC_INLINE void LL_RCC_HSE_EnableBypass(void)
__STATIC_INLINE void LL_RCC_HSE_DisableBypass(void)
__STATIC_INLINE void LL_RCC_HSE_Enable(void)
__STATIC_INLINE void LL_RCC_HSE_Disable(void)
__STATIC_INLINE uint32_t LL_RCC_HSE_IsReady(void)
__STATIC_INLINE uint32_t LL_RCC_HSE_GetPrediv2(void)
__STATIC_INLINE void LL_RCC_HSI_Enable(void)
__STATIC_INLINE void LL_RCC_HSI_Disable(void)
__STATIC_INLINE uint32_t LL_RCC_HSI_IsReady(void)
__STATIC_INLINE uint32_t LL_RCC_HSI_GetCalibration(void)
__STATIC_INLINE void LL_RCC_HSI_SetCalibTrimming(uint32_t Value)
__STATIC_INLINE uint32_t LL_RCC_HSI_GetCalibTrimming(void)
__STATIC_INLINE void LL_RCC_LSE_Enable(void)
__STATIC_INLINE void LL_RCC_LSE_Disable(void)
__STATIC_INLINE void LL_RCC_LSE_EnableBypass(void)
__STATIC_INLINE void LL_RCC_LSE_DisableBypass(void)
__STATIC_INLINE uint32_t LL_RCC_LSE_IsReady(void)
__STATIC_INLINE void LL_RCC_LSI_Enable(void)
__STATIC_INLINE void LL_RCC_LSI_Disable(void)
__STATIC_INLINE uint32_t LL_RCC_LSI_IsReady(void)
__STATIC_INLINE void LL_RCC_SetSysClkSource(uint32_t Source)
__STATIC_INLINE uint32_t LL_RCC_GetSysClkSource(void)
__STATIC_INLINE void LL_RCC_SetAHBPrescaler(uint32_t Prescaler)
__STATIC_INLINE void LL_RCC_SetAPB1Prescaler(uint32_t Prescaler)
__STATIC_INLINE void LL_RCC_SetAPB2Prescaler(uint32_t Prescaler)
__STATIC_INLINE uint32_t LL_RCC_GetAHBPrescaler(void)
__STATIC_INLINE uint32_t LL_RCC_GetAPB1Prescaler(void)
__STATIC_INLINE uint32_t LL_RCC_GetAPB2Prescaler(void)
__STATIC_INLINE void LL_RCC_ConfigMCO(uint32_t MCOxSource)
__STATIC_INLINE void LL_RCC_SetUSBClockSource(uint32_t USBxSource)
__STATIC_INLINE void LL_RCC_SetADCClockSource(uint32_t ADCxSource)
__STATIC_INLINE uint32_t LL_RCC_GetUSBClockSource(uint32_t USBx)
__STATIC_INLINE uint32_t LL_RCC_GetADCClockSource(uint32_t ADCx)
__STATIC_INLINE void LL_RCC_SetRTCClockSource(uint32_t Source)
__STATIC_INLINE uint32_t LL_RCC_GetRTCClockSource(void)
__STATIC_INLINE void LL_RCC_EnableRTC(void)
__STATIC_INLINE void LL_RCC_DisableRTC(void)
__STATIC_INLINE uint32_t LL_RCC_IsEnabledRTC(void)
__STATIC_INLINE void LL_RCC_ForceBackupDomainReset(void)
__STATIC_INLINE void LL_RCC_ReleaseBackupDomainReset(void)
__STATIC_INLINE void LL_RCC_PLL_Enable(void)
__STATIC_INLINE void LL_RCC_PLL_Disable(void)
__STATIC_INLINE uint32_t LL_RCC_PLL_IsReady(void)
__STATIC_INLINE void LL_RCC_PLL_ConfigDomain_SYS(uint32_t Source, uint32_t PLLMul)
__STATIC_INLINE void LL_RCC_PLL_SetMainSource(uint32_t PLLSource)
__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void)
__STATIC_INLINE uint32_t LL_RCC_PLL_GetMultiplicator(void)
__STATIC_INLINE uint32_t LL_RCC_PLL_GetPrediv(void)
__STATIC_INLINE void LL_RCC_ClearFlag_LSIRDY(void)
__STATIC_INLINE void LL_RCC_ClearFlag_LSERDY(void)
__STATIC_INLINE void LL_RCC_ClearFlag_HSIRDY(void)
__STATIC_INLINE void LL_RCC_ClearFlag_HSERDY(void)
__STATIC_INLINE void LL_RCC_ClearFlag_PLLRDY(void)
__STATIC_INLINE void LL_RCC_ClearFlag_HSECSS(void)
__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LSIRDY(void)
__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LSERDY(void)
__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSIRDY(void)
__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSERDY(void)
__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PLLRDY(void)
__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSECSS(void)
__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_IWDGRST(void)
__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LPWRRST(void)
__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PINRST(void)
__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PORRST(void)
__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_SFTRST(void)
__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_WWDGRST(void)
__STATIC_INLINE void LL_RCC_ClearResetFlags(void)
__STATIC_INLINE void LL_RCC_EnableIT_LSIRDY(void)
__STATIC_INLINE void LL_RCC_EnableIT_LSERDY(void)
__STATIC_INLINE void LL_RCC_EnableIT_HSIRDY(void)
__STATIC_INLINE void LL_RCC_EnableIT_HSERDY(void)
__STATIC_INLINE void LL_RCC_EnableIT_PLLRDY(void)
__STATIC_INLINE void LL_RCC_DisableIT_LSIRDY(void)
__STATIC_INLINE void LL_RCC_DisableIT_LSERDY(void)
__STATIC_INLINE void LL_RCC_DisableIT_HSIRDY(void)
__STATIC_INLINE void LL_RCC_DisableIT_HSERDY(void)
__STATIC_INLINE void LL_RCC_DisableIT_PLLRDY(void)
__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_LSIRDY(void)
__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_LSERDY(void)
__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_HSIRDY(void)
__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_HSERDY(void)
__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_PLLRDY(void)通用输入/输出(GPIO)
ErrorStatus LL_GPIO_DeInit(GPIO_TypeDef *GPIOx);
ErrorStatus LL_GPIO_Init(GPIO_TypeDef *GPIOx, LL_GPIO_InitTypeDef *GPIO_InitStruct);
void LL_GPIO_StructInit(LL_GPIO_InitTypeDef *GPIO_InitStruct);
__STATIC_INLINE void LL_GPIO_SetPinMode(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Mode)
__STATIC_INLINE uint32_t LL_GPIO_GetPinMode(GPIO_TypeDef *GPIOx, uint32_t Pin)
__STATIC_INLINE void LL_GPIO_SetPinSpeed(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Speed)
__STATIC_INLINE uint32_t LL_GPIO_GetPinSpeed(GPIO_TypeDef *GPIOx, uint32_t Pin)
__STATIC_INLINE void LL_GPIO_SetPinOutputType(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t OutputType)
__STATIC_INLINE uint32_t LL_GPIO_GetPinOutputType(GPIO_TypeDef *GPIOx, uint32_t Pin)
__STATIC_INLINE void LL_GPIO_SetPinPull(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Pull)
__STATIC_INLINE uint32_t LL_GPIO_GetPinPull(GPIO_TypeDef *GPIOx, uint32_t Pin)
__STATIC_INLINE void LL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint32_t PinMask)
__STATIC_INLINE uint32_t LL_GPIO_IsPinLocked(GPIO_TypeDef *GPIOx, uint32_t PinMask)
__STATIC_INLINE uint32_t LL_GPIO_IsAnyPinLocked(GPIO_TypeDef *GPIOx)
__STATIC_INLINE uint32_t LL_GPIO_ReadInputPort(GPIO_TypeDef *GPIOx)
__STATIC_INLINE uint32_t LL_GPIO_IsInputPinSet(GPIO_TypeDef *GPIOx, uint32_t PinMask)
__STATIC_INLINE void LL_GPIO_WriteOutputPort(GPIO_TypeDef *GPIOx, uint32_t PortValue)
__STATIC_INLINE uint32_t LL_GPIO_ReadOutputPort(GPIO_TypeDef *GPIOx)
__STATIC_INLINE uint32_t LL_GPIO_IsOutputPinSet(GPIO_TypeDef *GPIOx, uint32_t PinMask)
__STATIC_INLINE void LL_GPIO_SetOutputPin(GPIO_TypeDef *GPIOx, uint32_t PinMask)
__STATIC_INLINE void LL_GPIO_ResetOutputPin(GPIO_TypeDef *GPIOx, uint32_t PinMask)
__STATIC_INLINE void LL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint32_t PinMask)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_SPI1(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_SPI1(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_SPI1(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_I2C1(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_I2C1(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_I2C1(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_USART1(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_USART1(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_USART1(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_USART2(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_USART2(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_USART2(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_USART3(void)
__STATIC_INLINE void LL_GPIO_AF_RemapPartial_USART3(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_USART3(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_TIM1(void)
__STATIC_INLINE void LL_GPIO_AF_RemapPartial_TIM1(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_TIM1(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_TIM2(void)
__STATIC_INLINE void LL_GPIO_AF_RemapPartial2_TIM2(void)
__STATIC_INLINE void LL_GPIO_AF_RemapPartial1_TIM2(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_TIM2(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_TIM3(void)
__STATIC_INLINE void LL_GPIO_AF_RemapPartial_TIM3(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_TIM3(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_TIM4(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_TIM4(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_TIM4(void)
__STATIC_INLINE void LL_GPIO_AF_RemapPartial1_CAN1(void)
__STATIC_INLINE void LL_GPIO_AF_RemapPartial2_CAN1(void)
__STATIC_INLINE void LL_GPIO_AF_RemapPartial3_CAN1(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_PD01(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_PD01(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_PD01(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_TIM5CH4(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_TIM5CH4(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_TIM5CH4(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_ETH(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_ETH(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_ETH(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_CAN2(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_CAN2(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_CAN2(void)
__STATIC_INLINE void LL_GPIO_AF_Select_ETH_RMII(void)
__STATIC_INLINE void LL_GPIO_AF_Select_ETH_MII(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_ADC1_ETRGINJ(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_ADC1_ETRGINJ(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_ADC1_ETRGINJ(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_ADC1_ETRGREG(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_ADC1_ETRGREG(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_ADC1_ETRGREG(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_ADC2_ETRGINJ(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_ADC2_ETRGINJ(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_ADC2_ETRGINJ(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_ADC2_ETRGREG(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_ADC2_ETRGREG(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_ADC2_ETRGREG(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_SWJ(void)
__STATIC_INLINE void LL_GPIO_AF_Remap_SWJ_NONJTRST(void)
__STATIC_INLINE void LL_GPIO_AF_Remap_SWJ_NOJTAG(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_SWJ(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_SPI3(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_SPI3(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_SPI3(void)
__STATIC_INLINE void LL_GPIO_AF_Remap_TIM2ITR1_TO_USB(void)
__STATIC_INLINE void LL_GPIO_AF_Remap_TIM2ITR1_TO_ETH(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_ETH_PTP_PPS(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_ETH_PTP_PPS(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_TIM9(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_TIM9(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_TIM9(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_TIM10(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_TIM10(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_TIM10(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_TIM11(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_TIM11(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_TIM11(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_TIM13(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_TIM13(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_TIM13(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_TIM14(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_TIM14(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_TIM14(void)
__STATIC_INLINE void LL_GPIO_AF_Disconnect_FSMCNADV(void)
__STATIC_INLINE void LL_GPIO_AF_Connect_FSMCNADV(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_TIM15(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_TIM15(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_TIM15(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_TIM16(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_TIM16(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_TIM16(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_TIM17(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_TIM17(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_TIM17(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_CEC(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_CEC(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_CEC(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_TIM1DMA(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_TIM1DMA(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_TIM1DMA(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_TIM67DACDMA(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_TIM67DACDMA(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_TIM67DACDMA(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_TIM12(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_TIM12(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_TIM12(void)
__STATIC_INLINE void LL_GPIO_AF_EnableRemap_MISC(void)
__STATIC_INLINE void LL_GPIO_AF_DisableRemap_MISC(void)
__STATIC_INLINE uint32_t LL_GPIO_AF_IsEnabledRemap_MISC(void)
__STATIC_INLINE void LL_GPIO_AF_ConfigEventout(uint32_t LL_GPIO_PortSource, uint32_t LL_GPIO_PinSource)
__STATIC_INLINE void LL_GPIO_AF_EnableEventout(void)
__STATIC_INLINE void LL_GPIO_AF_DisableEventout(void)
__STATIC_INLINE void LL_GPIO_AF_SetEXTISource(uint32_t Port, uint32_t Line)
__STATIC_INLINE uint32_t LL_GPIO_AF_GetEXTISource(uint32_t Line)
相关说明





参考资料
- 《STM32F103xB_User_Manual.chm》(Drivers\STM32F1xx_HAL_Driver)
- 《stm32f10x_stdperiph_lib_um.chm》(STM32F1xx_DFP\Device\StdPeriph_Driver)
- 《STM32固件库使用手册(中文)》
- 《零死角玩转STM32—F103霸道》
- 《STM32 HAL库开发实战指南——F103系列》
版权声明:本文为「梦幻之心星」原创,依据 CC BY-NC-SA 4.0 许可证进行授权,转载请附上原文出处链接及本声明。
博客园地址:https://www.cnblogs.com/Sky-seeker
微信公众号:关注微信公众号,获取即时推送

Arduino库和STM32的寄存器、标准库、HAL库、LL库开发比较之GPIO的更多相关文章
- STM32之HAL库、标准外设库、LL库(STM32 Embedded Software)-(转载)
STM32 Embedded Software 工作以来一直使用ST的STM32系列芯片,ST为开发者提供了非常方便的开发库.到目前为止,有标准外设库(STD库).HAL库.LL库 三种.前两者都是 ...
- STM32之HAL库、标准外设库、LL库
标准外设库(Standard Peripherals Library),应该是最早推出的版本,以前用STM32F103的时候,用的多 HAL(Hardware Abstraction Layer),硬 ...
- STM32中STD、HAL、LL库比较
ST为开发者提供了标准外设库(STD库).HAL库.LL库 三种.前两者都是常用的库,后面的LL库是ST新添加的,随HAL源码包一起提供,目前支持的芯片也偏少. 标准外设库(Standard Peri ...
- Arduino+ESP32 之 驱动GC9A01圆形LCD(一),基于Arduino_GFX库
最近买了一块圆形屏幕,驱动IC是GC9A01,自己参考淘宝给的stm32的驱动例程, 在ubuntu下使用IDF开发ESP32,也在windows的vscode内安装IDF开发ESP32,虽然都做到了 ...
- 学习使用 ARM 的 math 库,据说 速度比C标准库 自带的 快 几十倍 到几百倍
1.首先 添加 库 到 工程 ,路径 如下 C:\Keil\ARM\CMSIS\Lib\ARM 2.包含头文件以及在 工程里 添加 头文件 路径如下 C:\Keil\ARM\CMSIS\Includ ...
- STM32串口寄存器操作(转)
源:STM32串口寄存器操作 //USART.C /************************************************************************** ...
- Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发
Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...
- Keil MDK STM32系列(三) 基于标准外设库SPL的STM32F407开发
Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...
- Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401开发
Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...
随机推荐
- 【转载】Linux查看PCIe版本及速率【方法】PCIE的X4X8X16 查看 数量 怎么看
Linux查看PCIe版本及速率 PCIE有四种不同的规格,通过下图来了解下PCIE的其中2种规格 查看主板上的PCI插槽 # dmidecode | grep --color "P ...
- (代替人类)很多操作都在Settings里面。 5.安装第三方库
2020-02-01 pycharm 使用教程 LingSmart关注 0.0842020.02.07 15:08:50字数 1,394阅读 680 实在无聊,就来学习吧.学习pycharm的使用教程 ...
- SecureCRT配置自动记录日志
很多人用SecureCRT时,希望自动记录日志,一个是方便以后查阅,一个是对自己的操作有个记录.可以看看自己做了什么操作,有时甚至可以看看之前是不是犯了什么错,是个很不错的功能. 设置很简单,还可以根 ...
- :整数 跳转到该行 Vim中常用的命令
:set nu 显示行号 :set nonu 不显示行号 :命令 执行该命令 :整数 跳转到该行 :s/one/two 将当前光标所在行的第一个one替换成two :s/one/two/g 将当前光标 ...
- www.heihei.work站长日记
____________2020-03-30_________________晴 昨天刚加的游客IP统计选取一部分查了下地址,小朋友你是不是有很多问号??? 36.99.136.142河南 电信 47 ...
- 30-- A 代码记录分析
张的代码 30-- -A if(BT_INFO.RX.CACHE == BT_RX_CACHE[0]) { BT_INFO.RX.CACHE = BT_RX_CACHE[1]; } else { B ...
- C语言进阶日志二
1.一个功能模块最好使用一个文件夹包含 2.基本就需要几个文件,比如定时器取反 LED: bsp_led.c 和 bsp_led.h : 包含你需要的led外设GPIO的初始化代码 led_it.c ...
- 安装JDK 常见错误解决(Day_07)
在cmd中输入java -version或者java 或出现以下错误: 原因一:可能是你的JDK装的时间比较早,导致环境变量中的Path(此电脑->右击属性->高级系统设置->环境变 ...
- Django(37)配置django日志
前言 django框架的日志通过python内置的logging模块实现的,既可以记录自定义的一些信息描述,也可以记录系统运行中的一些对象数据,还可以记录包括堆栈跟踪.错误代码之类的详细信息. ...
- 4D毫米波雷达Radar
4D毫米波雷达Radar 围绕雷达.激光雷达.高精定位等新一代传感器技术将会进入量产周期. 自动驾驶公司的竞争,在传感器配置上坦白说并没有太多差异化.除了车载激光雷达属于近几年的产物,类似摄像头.毫米 ...