大家好,我是时序,感谢非常荣幸能够参与Let's do 2025年第一期活动,在这里感谢得捷DigiKey和电子产品世界EEPW给的机会。
非常艰难把基础任务从0到1的实现,成就感不是一般的高,我是第一次接触STM32F4系列的开发板,在开发过程中发现F4的性能非常优越,不禁为之前固步自封,只拿F1系列做一些小玩意感到后悔。首次使用STM32CubeMx这款软件,简单看过入门视频和帖子后,发现它不是一般的好用,一定会成为之后我之后学习开发的好伙伴,为学习过程中发现良师益友而感到兴奋。
开发过程中不免有一些难以解决的bug,在培训课程的指导和各位大佬的经验帮助下,我也是慢慢解决BUG,过程稍显磕磕绊绊,所幸坚持下来了。接下来将我的小小成果,整合后分几次编辑发出。
(1)1s翻转LED软件和新建过程不再赘述,许多大佬和文章已经非常详尽的介绍了,在这里,我是使用开发板建立一个工程,非常方便。首先对时钟树进行配置,配置晶振频率100MHZ,主要是F4的性能强。
之后,对定时器进行配置,此处定时时间由分频系数和定时时间确定,范围为0-65535,我设置了19999和4999,定时时间为1S。
接下来对GPIO口配置,开发板已有默认配置,设置为推挽输出,低电平,高电平点亮LED,点击使用。(此处备注一条,需要对SYS内进行配置,否则后面烧录会出现问题)
之后,对定时器进行配置,此处定时时间由分频系数和定时时间确定,范围为0-65535,我设置了19999和4999,定时时间为1S。
最后,生成代码,选用没有中文的路径,此处我勾选这三项,以便后面的更新和代码撰写。点击GENERATE CODE。
生成一个健康的代码
附上主函数中执行的代码
/* USER CODE BEGIN 2 */
HAL_TIM_Base_Start_IT(&htim3);
/* USER CODE END 2 */
/* USER CODE BEGIN 4 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim == &htim3)
HAL_GPIO_TogglePin(LD2_GPIO_Port,LD2_Pin);
}
编译烧录
以上,有任何问题请和我沟通