
LL_TIM_InitTypeDef TIM_InitStruct = {0}; LL_GPIO_InitTypeDef GPIO_InitStruct = {0}; / Peripheral clock enable / LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM3); LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOC); /*TIM3 GPIO Configuration PC6 ------> TIM3_CH1 PC7 ------> TIM3_CH2 / GPIO_InitStruct.Pin = ENCODERA_Pin|ENCODERB_Pin; GPIO_InitStruct.Mode = LL_GPIO_MODE_FLOATING; LL_GPIO_Init(GPIOC, &GPIO_InitStruct); / TIM3 interrupt Init / NVIC_SetPriority(TIM3_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),0, 0)); NVIC_EnableIRQ(TIM3_IRQn); / USER CODE BEGIN TIM3_Init 1 / / USER CODE END TIM3_Init 1 / LL_TIM_SetEncoderMode(TIM3, LL_TIM_ENCODERMODE_X4_TI12); LL_TIM_IC_SetActiveInput(TIM3, LL_TIM_CHANNEL_CH1, LL_TIM_ACTIVEINPUT_DIRECTTI); LL_TIM_IC_SetPrescaler(TIM3, LL_TIM_CHANNEL_CH1, LL_TIM_ICPSC_DIV1); LL_TIM_IC_SetFilter(TIM3, LL_TIM_CHANNEL_CH1, LL_TIM_IC_FILTER_FDIV1); LL_TIM_IC_SetPolarity(TIM3, LL_TIM_CHANNEL_CH1, LL_TIM_IC_POLARITY_RISING); LL_TIM_IC_SetActiveInput(TIM3, LL_TIM_CHANNEL_CH2, LL_TIM_ACTIVEINPUT_DIRECTTI); LL_TIM_IC_SetPrescaler(TIM3, LL_TIM_CHANNEL_CH2, LL_TIM_ICPSC_DIV1); LL_TIM_IC_SetFilter(TIM3, LL_TIM_CHANNEL_CH2, LL_TIM_IC_FILTER_FDIV1); LL_TIM_IC_SetPolarity(TIM3, LL_TIM_CHANNEL_CH2, LL_TIM_IC_POLARITY_RISING); TIM_InitStruct.Prescaler = 0; TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP; TIM_InitStruct.Autoreload = 65535; TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1; LL_TIM_Init(TIM3, &TIM_InitStruct); LL_TIM_DisableARRPreload(TIM3); LL_TIM_SetTriggerOutput(TIM3, LL_TIM_TRGO_RESET); LL_TIM_DisableMasterSlaveMode(TIM3); / USER CODE BEGIN TIM3_Init 2 / / USER CODE END TIM3_Init 2 / } |
stm32的同一个定时器,不同的通道,可以不同时的输出pwm波形吗
USB Device + FatFS + 外挂 flash
STM32F103C8T6 TIM1 CH2输入捕获触发DMA的问题
STM32F103在使用HAL库1.8.5版本使用串口中断发送数据的时候,会出现huart2->TxXferCount为0了,但是并没有清除掉TXEIE中断也没有使能TCIE中断,而且huart2->gState已经被置为HAL_UART_STATE_READE,导致了一直在进入TXEIE中断,主循环都无法执行
STM32的低功耗模式
四轴飞行器
不清楚为什么正点原子的例程,想添加SCB添加到watch1却是无效的(在core_cm3.h定义的寄存器都不可以),但是可以添加GPIOA并且有效(stm32f10x.h定义的寄存器都可以)
不知道为什么用正点原子的开源例程硬件仿真时。想观察寄存器的值,所以添加到watch1观察,不清楚为啥SCB,NVTC等都添加了但是无效,但是GPIOA却又可以。
STM32的上电启动过程
STM32中如何实现数据加密
我用STM32F103C8配置了下,TIM3 encoder脚可以选择PA6PA7
或者PB4PB5.
/**TIM3 GPIO Configuration
PB4 ------> TIM3_CH1
PB5 ------> TIM3_CH2
*/
GPIO_InitStruct.Pin = LL_GPIO_PIN_4|LL_GPIO_PIN_5;
GPIO_InitStruct.Mode = LL_GPIO_MODE_FLOATING;
LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
or
/**TIM3 GPIO Configuration
PA6 ------> TIM3_CH1
PA7 ------> TIM3_CH2
*/
GPIO_InitStruct.Pin = LL_GPIO_PIN_6|LL_GPIO_PIN_7;
GPIO_InitStruct.Mode = LL_GPIO_MODE_FLOATING;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
这个应该是没找到映射代码的地方吧。
使用STM32 cube mx 配置的代码,GPIO的配置一般都是在 MSPINIT中