关于GPIOx_AFRL 和GPIOx_AFRH怎么用,参考手册没说明,一笔带过。比如,第27脚是PB4/SPI1_MISO/TIM3_CH1/EVENTOUT上电复位时,应该是PB4.是不是GPIOB_AFRL4=0X00?假如想复用 TIM3_CH1,GPIOB_AFRL4应该多少? |
stlink V3mini 调试器不能识别stm32f030F4P6芯片,有解决办法吗?
STM32F0 SMBus 中断怎么开启
STM32F072 无法清除EXTI4_15_IRQn pending标志,导致无法进入stop模式
基于GCC编译器的initcall在STM32如何实现?
想找一款pin to pin的MCU(参考STM32F105RC),支持CAN FD的,64PIN封装,各位小伙伴们有推荐吗
L9663如何使用上行缓冲区发送同步脉冲
如何使用定时器在任意IO输出PWM
下载到flash无法运行,开调试就能成功,是什么问题?
STM32是小端模式,但为什么Keil中memory窗口和反汇编窗口的32位指令不一致?
各位朋友,有没有STM32F0系列教程,最好是汇编语言的。
Struct <unnamed> has no field :AFRL",GPIOx_AFRL和GPIOx_AFRH,GPIOX_MODER等都是寄存器,定义GPIOB->MODER = 0X55551655;则OK.
该怎么解决?Thanks
直接看官方库函数和数据手册的值。具体的寄存器,通过代入常量计算获取。
//-------------------------------------------------------------
#define SetAF_TIM3_CH1 {GPIO_PinAFConfig(GPIOB, GPIO_PinSource4, GPIO_AF_1);}
//-------------------------------------------------------------
void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF)
{
uint32_t temp = 0x00;
uint32_t temp_2 = 0x00;
/* Check the parameters */
assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource));
assert_param(IS_GPIO_AF(GPIO_AF));
temp = ((uint32_t)(GPIO_AF) << ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4));
GPIOx->AFR[GPIO_PinSource >> 0x03] &= ~((uint32_t)0xF << ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4));
temp_2 = GPIOx->AFR[GPIO_PinSource >> 0x03] | temp;
GPIOx->AFR[GPIO_PinSource >> 0x03] = temp_2;
}