简介
基于01基础工程,使用系统滴答时钟
01基础工程
过程
界面配置
无
系统滴答时钟默认开启(至少stm32G4是这样)
相应代码添加
在main.c文件里,
/* USER CODE BEGIN 2 */
/* SystemCoreClock / 1000 1ms中断一次
* SystemCoreClock / 100000 10us中断一次
* SystemCoreClock / 1000000 1us中断一次
*
SysTick_Config(SystemCoreClock /1000);//延时1ms
/* USER CODE END 2 */
此时,在stm32g4xx_it.c文件的下面这个中断函数周期即为1ms
void SysTick_Handler(void)
{
/* USER CODE BEGIN SysTick_IRQn 0 */
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
/* USER CODE BEGIN SysTick_IRQn 1 */
/* USER CODE END SysTick_IRQn 1 */
}
此时的HAL_Delay()函数延时为1us
如果需要一个1ms的延时函数,可以复制HAL_Delay函数后,改名并将对应数字乘以1000,如下:
void HAL_Delay_ms(uint32_t Delay)
{
uint32_t tickstart = HAL_GetTick();
uint32_t wait = Delay*1000;//这里乘以1000使得延时为1ms
if (wait < HAL_MAX_DELAY)
{
wait += (uint32_t)(uwTickFreq);
}
while ((HAL_GetTick() - tickstart) < wait)
{
}
}
CubeIDE复制工程
简单地从文件夹复制粘贴然后把对应名称改掉
是绝对不行的
步骤:
然后在项目资源管理器下方空白处右键粘贴,填入需要的新项目名,单击复制
打开新的工程,右键ioc文件进行重命名
重命名为和新的项目名一致然后点击确定