你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32Cube的脉冲输出

[复制链接]
ruigewei5 发布时间:2016-7-24 16:03
方法一:定时器定时I/O反转生成脉冲波形

1、建立STM32Cube选择STM32F429,我使用的STM32F429-discovery开发板,晶振是8MHz,时钟配置为180M,这样定时器内部时钟源为90HHz。
2、使能TIM2,时钟源选择内部时钟,如下图所示:
11.png

3、这里采用通用定时器产生定时中断,在中断里面翻转芯片管脚,定时器配置如下:
12.png


4、生成源代码,设置在keil 5环境下,编译工程;
5、中断回调函数处进行管脚翻转,另为了能够实现不同频率的脉冲波,同时添加了修改定时器的周期的命令,如下图所示:
13.png

在主循环之前需要打开定时器,使用函数:HAL_TIM_Base_Start_IT(&htim2);




方法二:使用定时器的PWM波功能可生成脉冲波形

1、建立STM32Cube工程,与方法一相同;
2、使能TIM2,时钟源选择内部时钟,选择channel 1,PWM Generation CH1功能,如下图所示;
14.png

3、定时器配置如下图所示:
15.png

16.jpg

4、生成源代码,我的环境是Keil 5;
5、为了能够实现不同频率的脉冲波,我特意在中断回调函数的地方,添加了修改定时器的周期的命令,如下图所示
17.png

   在主循环之前打开定时器,使用函数:HAL_TIM_OC_Start_IT(&htim2, TIM_CHANNEL_1);
注意:在这里必须直接使用寄存器设置,方能实现周期变化,如果使用HAL_TIM_OC_Init(),则波形出现乱码,具体原因没有查明;
6、最终通过示波器,查看输出波形如下图所示:
18.jpg

刚好10个周期为一个循环,高电平脉宽不变,而周期逐次增大。

收藏 评论5 发布时间:2016-7-24 16:03

举报

5个回答
Paderboy 回答时间:2016-7-24 17:29:40
好学上进走正道 回答时间:2016-7-25 08:35:36
学习了,真不错
fax629714 回答时间:2018-4-15 20:35:00
正点原子有讲,那样操作会导致不稳定
fax629714 回答时间:2018-4-15 20:35:55
可以整理一下写一个操作流程文档,供他人学习参考
samhong 回答时间:2018-5-12 06:49:51
学习了,学习了!

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版