软件:
(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进入中断处理。
以TIM1为例,APB2时钟频率168MHz=168,000,000Hz,选取预分频系数(Prescaler)(16位存储,预分频系数最大65535)为16799,则定时器的时钟频率为168,000,000 / 16800 = 10000 Hz,频率为1万赫兹,选取计数周期(Counter Period,16位存储)为9999, 所以定时周期1s,同理TIM2也是同样计算,如果APB的时钟频率改变,一样安装上面的方法进行设置。
(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 */12345678910111213
(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 */12345678910111213141516
最后烧写到开发板实现预定效果,对定时器中断的详细视频介绍可以参考博主制作的相关视频,一个是在proteus仿真实现的,另一个是结合freertos实现的:https://www.bilibili.com/video/av63392182, https://www.bilibili.com/video/av63560586
上一篇:STM32f103时钟系统简介
下一篇:Stm32时钟分析
推荐阅读
史海拾趣
随着市场的扩大和竞争的加剧,Semi-Films Division 意识到品质是品牌的核心。因此,公司加大了对产品质量控制的投入,引入了先进的生产设备和检测手段,确保每一批产品都符合客户的要求。同时,公司还建立了完善的质量管理体系,对生产过程进行全程监控,确保产品质量的稳定性和可靠性。这些努力使得 Semi-Films 的产品在市场上赢得了良好的口碑。
长江微电(CJIANG)自创立以来,始终专注于电感产品的材料研发、技术研发、生产工艺和生产设备的研发和改进。面对国外品牌在电感技术领域的领先地位,长江微电并未退缩,而是选择迎难而上。通过多年的努力,其技术团队基于对磁性材料的深入研究和对生产工艺的不断改进,成功突破了VISHAY等国外品牌的技术壁垒,拥有了全系列的一体成型电感产品。这一突破不仅彰显了长江微电的技术实力,也为公司的发展奠定了坚实基础。
在追求经济效益的同时,Advanced Electronic Packaging公司始终关注企业社会责任和可持续发展。公司积极采用环保材料和生产工艺,减少生产过程中的能源消耗和环境污染。此外,公司还积极参与社会公益活动,为当地社区提供就业机会和培训支持。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。
这些故事只是Advanced Electronic Packaging公司发展过程中的一部分,它们共同展现了公司在电子行业中的成长轨迹和取得的成就。未来,随着科技的不断进步和市场需求的不断变化,相信Advanced Electronic Packaging公司将继续保持创新精神,为电子行业的发展贡献更多力量。
为了进一步提升产品的竞争力,驰兴电感积极开展国际合作。公司与国际知名电子元器件厂商建立了长期稳定的合作关系,共同研发新产品、新技术。这些国际合作不仅使驰兴电感能够借鉴国际先进经验和技术,还为公司带来了更多的市场机会和资源。
为了进一步提升产品的竞争力,驰兴电感积极开展国际合作。公司与国际知名电子元器件厂商建立了长期稳定的合作关系,共同研发新产品、新技术。这些国际合作不仅使驰兴电感能够借鉴国际先进经验和技术,还为公司带来了更多的市场机会和资源。
在技术创新方面,三礼公司一直保持着领先地位。2009年,公司成功完成了UPI、DPI压模型电感量产布线及自制粉料能力,并获得了Texas Instrument认证。同时,公司重新发布了愿景并重新定义了3L,将持续改善、精益生产、以客为尊作为公司的三个核心L。随后,公司成立了精实中心,进一步推进精益生产的自动化配置,实现了生产效率的大幅提升和不良品及库存的减少。
我本来就有一段程序,但,他只用有从摄像头中取到320*240的图像,我现在 要做800*480,有如下,代码,据说可以实现,哪位,知道,告诉我下,这段代码,放在程序的哪里有,有做这方面我想会知道。 HRESULT hr; IBaseFilter *pCap; CComPtr<ICap ...… 查看全部问答∨ |
求助:关于c8051f020的定时器中断的问题,急急急!!!!!!!!!!! 我的一个简单的程序,想利用定时器0中断来产生方波,可是调试的时候发现中断标志置位了,也允许中断了,但是就是不进入中断服务程序,请各位大侠帮我看看吧,谢谢!!!! //主程序 void main() { WDTCN=0xDE; ...… 查看全部问答∨ |
我用的是XSCal270+winCE4.2,最近自定义了中断,GPIO的52口,上升沿触发中断,pin已经设置了in中断。自认为过程没有错,测试程序中InterruptInitialize也没报错,但是就是等不来中断事件。硬件给了上升沿也没反应,不知道哪位大侠知道怎么实时看一 ...… 查看全部问答∨ |
我需要在程序中引用一些bmp,txt 文件,注意这些文件并不是程序的资源,而是程序的外部文件. 现在每次调试程序都需要把这些文件复制到模拟器对应目录下面,比较麻烦,有没有办法在编译器下设置一下,让编译器可以自动把这些 ...… 查看全部问答∨ |