完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
软件:
(1)STM32CubeMX (2)SW4STM32 实验平台:STM32F407VET6开发板 使用STM32CubeMX的一个好处就是图形化配置,在时钟配置方面,主要了解清楚高级外设总线(APB1、APB2)控制哪些外设。 (0)先配置好PA6、PA7(控制LED灯),好观察实验现象 (1)首先配置RCC(复位和时钟控制),选择外部高速始终,如下图 (2)为了测试不同APB的时钟频率效果,在此选择了TIM1和TIM2,按下图配置 (3)为什么选择以上两个定时器作为例子?参考STM32F4XX中文参考手册,找到RCC相关内容,如图 可知TIM1 在APB2,TIM2 在APB1 (4)进入时钟配置,我的STM32F407开发板外部晶振是8MHz的,在Input freequency 输入8,在HCLK 那里会提示最大频率168MHz,输入168,然后自动寻求配置,注意第一次配置出来的还是内部时钟HSI 的,要选择为HSE ,配置好后如下图 顺便提一下,STM32F103的开发板也差不多的,只不过F1的最高时钟频率是72MHz。 (5)配置好后时钟后可以看到APB1 定时器(如TIM2)频率为84MHz,APB2 定时器(如TIM1)频率为168MHz (6)设置NVIC,TIM1是高级定时器,选择更新中断,TIM2是通用定时器 除了定时器,我自己还设置了两个串口中断,可以不用理会 (7)设置定时器 上面两个定时器设置实现的都是定时1s进入中断处理。 (8)生成SW4STM32工程,打开,在main函数里面while前启动定时器,如下代码 /* Infinite loop */ /* USER CODE BEGIN WHILE */ HAL_TIM_Base_Start_IT(&htim1);/启动定时器 HAL_TIM_Base_Start_IT(&htim2); while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ (9)编写定时器中断 /* USER CODE BEGIN 4 */ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if(htim->Instance == TIM2) // 判断哪个定时器中断 { HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_6); // 翻转灯 } if(htim->Instance == TIM1) // 判断哪个定时器中断 { HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_7); // 翻转灯 } } /* USER CODE END 4 */ |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1627 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1550 浏览 1 评论
984 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
688 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1601 浏览 2 评论
1867浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
650浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
518浏览 3评论
536浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
506浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 10:22 , Processed in 0.821042 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号