找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5082|回复: 3
打印 上一主题 下一主题
收起左侧

绝对原创micropython生成50HZ正弦波

[复制链接]
跳转到指定楼层
楼主
开发板采用PYBOARD, 芯片为STM32F405VET。软件采用micropython 非常简单,micropython 与python 一样,解释性语言。
把程序通过模拟串口上传到开发板。 上传软件采用uPyCraft v1.1 其它软件也可以,串口调试组手都可以。开发板可以采用普通串口,这里我采用的是USB 模拟串口。
  1. import math
  2. import pyb
  3. from pyb import Timer,Pin
  4. import stm
  5. class pwm_sin:
  6.     def __init__(self):
  7.         self.buf = bytearray(100)
  8.         for i in range(len(self.buf)):
  9.             self.buf[i] = 128 + int(127 * math.sin(2 * math.pi * i / len(self.buf)))
  10.         pa0 = Pin('PA0', Pin.OUT_PP)
  11.         self.t6 = Timer(6, prescaler=83, period=19999)
  12.         t2 = Timer(2, prescaler=83, period=254)
  13.         self.ch1 = t2.channel(1, Timer.PWM, pin=pa0)
  14.         t2.callback(self.timer_callback)
  15.     def __del__(self):
  16.         pass

  17.     @micropython.native
  18.     def timer_callback(self,timer):
  19.         t = self.t6.counter() // 200
  20.         self.ch1.pulse_width(self.buf[t])
  21. p=pwm_sin()
复制代码

未滤波前波形



经阻容低通滤波器滤波后的波形


50HZ是不是非常完美,改变参数可以调整波形频率。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:595310 发表于 2019-8-5 09:03 | 只看该作者
有人在吗
回复

使用道具 举报

板凳
ID:595310 发表于 2019-8-5 09:03 | 只看该作者
想问一下如何用microPython产生一个SPWM波形
回复

使用道具 举报

地板
ID:137129 发表于 2019-8-5 14:21 | 只看该作者
最近一直在学micropython,感谢提供素材~~~~~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表