说明:这里笔者使用 gobot框架
官网:
执行下面命令:
命令执行完成后,会生成一个main的二进制文件,那个就是我们的程序
备注:如果你想编译其他版本的树莓程序?修改 GOARM 即可
备注:总结后面有上传脚本 ^?_?^
①请确保你已经连接到树莓派了
执行上传命令:
进入 /home/pi (就是你刚上传的文件路径)
运行它: ./main
good luck!
①上传文件的时候,请注意命令
树莓派其实是一个小型的linux系统,功能非常强大的,除了python外,C、C++、Java、perl,php、shell等编程语言都能用,连go语言都可以.
选择python是因为可读性强,容易上手,写代码有效率.
在前一小节中介绍了点亮第一个LED灯,这里我们准备进阶尝试下,输出第一段PWM波形.(PWM也就是脉宽调制,一种可调占空比的技术,得到的效果就是:如果用示波器测量引脚会发现有方波输出,而且高电平、低电平的时间是可调的.)
这里爪爪熊准备写成一个golang的库,并开源到github上,后续更新将直接更新到github中,如果你有兴趣可以和我联系. github.com/dpawsbear/bear_rpi_go
我在很多的教程中都看到说树莓派的PWM(硬件)只有一个GPIO能够输出,就是 GPIO1 .这可是不小的打击,因为我想使用至少四个 PWM ,还是不死心,想通过硬件手册上找寻蛛丝马迹,看看究竟怎么回事.
根据以上两个图对比可以发现如下规律:
为了验证个人猜想是否正确,这里先直接使用指令的模式,模拟配置下是否能够正常输出.
小节:树莓派具有四路硬件输出PWM能力,但是四路中只能输出两个独立(占空比独立)的PWM,同时四路输出的频率均是恒定的.
因为拿到了手册,这里我想直接操作寄存器的方式进行设置,也是顺便学习下Go语言处理寄存器的过程.首先需要拿到pwm 系列寄存器的基地址,但是翻了一圈手册,发现只有偏移,没有找到基地址.
以下是demo(pwm) 源码