You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.4 KiB
1.4 KiB
CubeMX HAL
开始项目
1、 选择芯片类型
stm32F103ZET6 stm32F407ZGT6
2、 sys
定时器: Systick Tim
一般sysstick用于OS
3、 RCC
默认内部时钟,大多情况下配置为外部时钟,并设置频率
__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
{
/* Configure the SysTick to have interrupt in 1ms time basis*/
if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U)
{
return HAL_ERROR;
}
1000U 1ms 中断 500U 2ms 中断
修改中断函数 Core\Src\stm32f1xx_it.c 定义累加值 uint16_t systime;
void SysTick_Handler(void)
{
/* USER CODE BEGIN SysTick_IRQn 0 */
systime++;
if (systime>1000)
{
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);
systime=0;
}
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
/* USER CODE BEGIN SysTick_IRQn 1 */
HAL_SYSTICK_IRQHandler();
/* USER CODE END SysTick_IRQn 1 */
}
以上程序可以烧录, 或通过定时器实现
设置定时器: 时钟还是8MHz,经过8分频后变成1MHz,即1微妙,然后累加值设置为500,则500微妙TIM3定时器将溢出执行一次中断,接下来我们先去使能TIM3溢出中断
Core\Src\stm32f1xx_it.c TIM3_IRQHandle() 然后打开定时器中断
4、 GPIO
HAL_GPIO_TogglePin
5、 UART
6、 makefile
arm-none-eabi-gcc -v