关于GPIOx_AFRL 和GPIOx_AFRH怎么用,参考手册没说明,一笔带过。比如,第27脚是PB4/SPI1_MISO/TIM3_CH1/EVENTOUT上电复位时,应该是PB4.是不是GPIOB_AFRL4=0X00?假如想复用 TIM3_CH1,GPIOB_AFRL4应该多少? |
ADC多通道数据错位
adc采集电压
各位朋友,有没有STM32F0系列教程,最好是汇编语言的。
F030系列与L031系列
请问STSPIN内部运算放大器OPAMP需不需要其他方式打开放大采集,还是直接采集,不需要其他操作打开才能采集?
USB复合设备 HID + CDC串口问题
stm32用tim输出pwm似乎先使能一次cen再设置cnt才有用?
STM32CubeIDE运行调试程序时报错
ORE溢出问题
做软件开发,有哪些硬件电路相关的技术资料参考下?
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;
}