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

[STM32F103] 用按键开关控制两路同步PWM + GPIO 输出

[复制链接]
wessling 提问时间:2018-4-17 01:07 /
本帖最后由 wessling 于 2018-4-18 04:41 编辑

[2018.4.17 更新]


手头有一块STM32F103 的开发板,想用来实现两路同步的波形输出, 一个口输出PWM 信号, 另一个口输出 GPIO信号, 波形如下


GPIO, TIMER.PNG


红色是GPIO 口输出, 绿色是PWM口输出。两路波形要求如下:

1. PWM 信号启动后先输出 10 msec. 高电平, 之后输出 50%占比, 0.5 msec. 周期(2kHZ)的PWM 驱动信号。
     

    这个问题昨天问过了, 大家也有讨论,今天经过别人建议用一个定时器, 直接设定 0,5msec 周期的PWM工作方式, 然后连续10个周波以占比  100%输出, 这样就实现了前面的10msec. 连续导通, 后面的周波把占比改成50%再输出就可以了。10msec. 的高电平输出利用了 TIMER 可以100%占比输出的特性

2. GPIO 信号和PWM 信号同步启动,同步关闭。 GPIO启动, 接着启动PWM 。 结束时 GPIO 变低电平,PWM 也要关闭。

3.  用一个按键开关控制两路信号输出。 按下开关启动波形输出, 信号启动后,再次按下按键关闭两路信号。

求大神给说下实现的思路, 怎么初始化, 中断程序干什么, 主程序里干什么。



[2018.4.16 求助帖]
想用定时器生成这么个波形, 先以10ms 周期, 占空比为80%启动定时器, 只运行不到一个周期,当波形到80%时候重装 reload 定时器,在发出 0.5ms(2kHZ),占空比为50% 的PWM波。
如下面图片所示。 纯新手, 不知道用一个定时器输出能不能实现这个波形, 定时器应该怎么设置, 谢谢大家指点!



PWM.PNG
<
收藏 评论11 发布时间:2018-4-17 01:07

举报

11个回答
wenyangzeng 回答时间:2018-4-17 07:20:16
这个类似红外线遥控器的编码波形。可以参考红外遥控相关资料。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

回答时间:2018-4-17 08:30:49
1、可以使用PWM先输出一个指定的波形,等80%的输出完以后,修改配置为2khz的。
2、定时器修改为小一点的,比如1us,通过自身计数器进行判断,需要执行的波形输出。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

toofree 回答时间:2018-4-17 09:31:01
你可以用SPI的MOSI输出这样的波形,全高对应数据0xff,高低变化对应0x55或0xaa等,记得最的后一个数据的时候,要发送0。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

select326 回答时间:2018-4-17 09:43:56
看这个波形,应该不难吧?先调整定时器是0.5MS中断一次。前面搞个计数器计算下,后面每次中断改变下端口就可以了。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

feixiang20 回答时间:2018-4-17 23:40:44
翻了翻PWM波形输出配置总结等帖子,也看了几个波形做参考

2.png
3.png

点评

下面按键波形是我以后需要的  发表于 2018-4-18 03:27

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

wessling 回答时间:2018-4-18 02:49:14
本帖最后由 wessling 于 2018-4-18 04:18 编辑

非常感谢大家的回复, 我把问题完善,并且更新了, 以前使用过DSP , 但对STM32一窍不通, 所以还望大家多指教。
wessling 回答时间:2018-4-18 03:25:51
安 发表于 2018-4-17 08:30
1、可以使用PWM先输出一个指定的波形,等80%的输出完以后,修改配置为2khz的。
2、定时器修改为小一点的, ...

谢谢回复。 你觉得用这种方法可行吗? 就是 直接设定 0,5msec 周期的PWM工作方式, 然后连续10个周波以占比100%输出, 这样就实现了前面的10msec. 连续导通, 后面的周波把占比改成50%再输出就可以了, 主要是想利用定时器可以100%占比输出的特点。
如果是我 回答时间:2018-4-18 06:34:30
、可以使用PWM先输出一个指定的波形,等80%的输出完以后,修改配置为2khz的。
2、定时器修改为小一点的, ...

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

回答时间:2018-4-18 08:26:19
wessling 发表于 2018-4-18 03:25
谢谢回复。 你觉得用这种方法可行吗? 就是 直接设定 0,5msec 周期的PWM工作方式, 然后连续10个周波以占 ...

这个你可以根据情况选择,如果定时器比较方便,就用定时器。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

12下一页

所属标签

相似问题

官网相关资源

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