|
方法一:定时器定时I/O反转生成脉冲波形 1、建立STM32Cube选择STM32F429,我使用的STM32F429-discovery开发板,晶振是8MHz,时钟配置为180M,这样定时器内部时钟源为90HHz。 2、使能TIM2,时钟源选择内部时钟,如下图所示:
3、这里采用通用定时器产生定时中断,在中断里面翻转芯片管脚,定时器配置如下:
4、生成源代码,设置在keil 5环境下,编译工程; 5、中断回调函数处进行管脚翻转,另为了能够实现不同频率的脉冲波,同时添加了修改定时器的周期的命令,如下图所示:
在主循环之前需要打开定时器,使用函数:HAL_TIM_Base_Start_IT(&htim2); 方法二:使用定时器的PWM波功能可生成脉冲波形 1、建立STM32Cube工程,与方法一相同; 2、使能TIM2,时钟源选择内部时钟,选择channel 1,PWM Generation CH1功能,如下图所示;
3、定时器配置如下图所示:
4、生成源代码,我的环境是Keil 5; 5、为了能够实现不同频率的脉冲波,我特意在中断回调函数的地方,添加了修改定时器的周期的命令,如下图所示
在主循环之前打开定时器,使用函数:HAL_TIM_OC_Start_IT(&htim2, TIM_CHANNEL_1); 注意:在这里必须直接使用寄存器设置,方能实现周期变化,如果使用HAL_TIM_OC_Init(),则波形出现乱码,具体原因没有查明; 6、最终通过示波器,查看输出波形如下图所示:
刚好10个周期为一个循环,高电平脉宽不变,而周期逐次增大。 |
![]() ![]() |
| 学习了,真不错 |
| 正点原子有讲,那样操作会导致不稳定 |
| 可以整理一下写一个操作流程文档,供他人学习参考 |
| 学习了,学习了! |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版