成都网站建设设计

将想法与焦点和您一起共享

go语言手册chm go语言教程

【原创】树莓派3B开发Go语言(四)-自写库实现pwm输出

在前一小节中介绍了点亮第一个LED灯,这里我们准备进阶尝试下,输出第一段PWM波形。(PWM也就是脉宽调制,一种可调占空比的技术,得到的效果就是:如果用示波器测量引脚会发现有方波输出,而且高电平、低电平的时间是可调的。)

站在用户的角度思考问题,与客户深入沟通,找到乳源网站设计与乳源网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、网站建设、企业官网、英文网站、手机端网站、网站推广、主机域名网站空间、企业邮箱。业务覆盖乳源地区。

这里爪爪熊准备写成一个golang的库,并开源到github上,后续更新将直接更新到github中,如果你有兴趣可以和我联系。 github点抗 /dpawsbear/bear_rpi_go

我在很多的教程中都看到说树莓派的PWM(硬件)只有一个GPIO能够输出,就是 GPIO1 。这可是不小的打击,因为我想使用至少四个 PWM ,还是不死心,想通过硬件手册上找寻蛛丝马迹,看看究竟怎么回事。

手册上找寻东西稍等下讲述,这里先提供一种方法测试 树莓派3B 的 PWM 方法:用指令控制硬件PWM。

这里通过指令的方式掌握了基本的pwm设置技巧,决定去翻一下手册看看到底PWM怎么回事,这里因为没有 BCM2837 的手册,根据之前文章引用官网所说, BCM2835 和 BCM2837 应该是一样的。这里我们直接翻阅 BCM2835 的手册,直接找到 PWM 章节。找到了如下图:

图中可以看到在博通的命名规则中 GPIO 12、13、18、19、40、41、45、52、53 均可以作为PWM输出。但是只有两路PWM0 PWM1。根据我之前所学知识,不出意外应该是PWM0 和 PWM1可以输出不一样的占空比,但是频率应该是一样的。因为没有示波器,暂时不好测试。先找到下面对应图:

根据以上两个图对比可以发现如下规律:

对照上面的表可以看出从 BCM2837 中印出来的能够使用在PWM上的就这几个了。

为了验证个人猜想是否正确,这里先直接使用指令的模式,模拟配置下是否能够正常输出。

通过上面一系列指令模拟发现,(GPIO1、GPIO26)、(GPIO23、GPIO24)是绑定在一起的,调节任意一个,另外一个也会发生变化。也即是PWM0、PWM1虽然输出了两路,可以理解成两路其实都是连在一个输出口上。这里由于没有示波器或者逻辑分析仪这类设备(仅有一个LED灯),所以测试很简陋,下一步是使用示波器这类东西对频率以及信号稳定性进行下测试。

小节:树莓派具有四路硬件输出PWM能力,但是四路中只能输出两个独立(占空比独立)的PWM,同时四路输出的频率均是恒定的。

上面大概了解清楚了树莓派3B的PWM结构,接下来就是探究如何使用Go语言进行设置。

因为拿到了手册,这里我想直接操作寄存器的方式进行设置,也是顺便学习下Go语言处理寄存器的过程。首先需要拿到pwm 系列寄存器的基地址,但是翻了一圈手册,发现只有偏移,没有找到基地址。

经过了一段时间的努力后,决定写一个 树莓派3B golang包开源放在github上,只需要写相关程序进行调用就可以了,以下是相关demo(pwm)(在GPIO.12 上输出PWM波,放上LED灯会有呼吸灯的效果,具体多少频率还没有进行测试)

以下是demo(pwm) 源码

java 中文API谁有,百度云分享一下

Android中文版

api手册地址:

Ant最新版

api手册地址:

ASM字节码操作

api手册地址:

Axis2最新版

api手册地址:

Bash脚本

api手册地址:

Bootstrap 3

api手册地址:

Bootstrap 4

api手册地址:

C/C++

api手册地址:

C3P0连接池

api手册地址:

CentOS使用文档

api手册地址:

Commons-Beanutils

api手册地址:

Commons-Fileupload

api手册地址:

Commons-IO最新版

api手册地址:

Commons-Lang最新版

api手册地址:

Commons-Net最新版

api手册地址:

CSS 3

api手册地址:

DBCP连接池

api手册地址:

Dom4j

api手册地址:

dubbo中文文档

api手册地址:

EhCache

api手册地址:

Freemarker

api手册地址:

Go语言

api手册地址:

Hadoop

api手册地址:

Hibernate中文版

api手册地址:

IKAnalyzer中文版

api手册地址:

Java 10

api手册地址:

Java 6

api手册地址:

Java 7

api手册地址:

Java 8中文版

api手册地址:

jqGrid中文版

api手册地址:

Jquery中文版

api手册地址:

Json-lib

api手册地址:

Junit4最新版

api手册地址:

Kryo

api手册地址:

Log4j最新版

api手册地址:

Lucene

api手册地址:

Maven

api手册地址:

Windows MFC中文版

api手册地址:

Mybatis

api手册地址:

MySql中文版

api手册地址:

Netty 3.6

api手册地址:

Nginx中文版

api手册地址:

OpenJPA最新版

api手册地址:

PHP中文版

api手册地址:

POI-apache

api手册地址:

QuickServer

api手册地址:

redis中文参考文档

api手册地址:

Ruby

api手册地址:

Ruby-library

api手册地址:

Ruby on Rails

api手册地址:

Shiro

api手册地址:

Spring最新版

api手册地址:

Spring for Android

api手册地址:

Spring Boot

api手册地址:

Spring Cloud中文文档

api手册地址:

Spring Security

api手册地址:

Spring中文版

api手册地址:

Struts 2最新版

api手册地址:

Taperstry

api手册地址:

TensorFlow中文

api手册地址:

Tomcat

api手册地址:

Ubuntu

api手册地址:

Velocity 1.7

api手册地址:

VelocityTools2.0

api手册地址:

Vue Router中文参考

api手册地址:

vue.js中文文档

api手册地址:

XMLBeans

api手册地址:

Yahoo UI中文版

api手册地址:

Zend Framework中文版

api手册地址:

Zookeeper

api手册地址:

小白想学习go语言,哪位有教程?

如果你想每一步走得扎实,那么我的建议如下:

对一名从未接触过程序开发的小白来说,首先得足够了解计算机,至少你得知道你写的代码在计算机内部是如何运行的,你的数据是如何通过网络传输,《微机原理与接口技术》和《TCP/IP详解》(三卷)是很好的学习入门 之选,同时也是很好的参考手册

一切准备就绪,开始写你的第一个程序,建议选C语言,基本的数据结构、指针、函数、循环、条件判断、手动GC等都上手试一遍,做到了然于胸,信手拈来

进入正题,学习Go语言,你会发现,换汤不换药,程序的构成无非那么几类,当然Go会有自己的特性,比如slice、goroutine、channel等,当然这一切得基于go开发环境

至于教程,最合适的莫过于官方文档,老老实实看完,别太在意网上的各种项目实战,先学会走路,再学跑

最重要的一点:纸上得来终觉浅,绝知此事要躬行,多敲敲代码,熟能生巧,happy coding!

如何生成api帮助文档chm文档

这里所用到的工具就是javadoc2chm.百度”javadoc2chm“下载。我看到有一个1积分下载的,我这里也有,需要的话可以私聊。

javadoc2chm.exe的大小只有102k左右,谨防上当受骗啊。

使用javadoc2chm制作帮助文档的时候,首先下载的文件中有帮助文档的html版。例如我下载的Struts2就有doc目录。

打开javadoc2chm.exe. path to javadoc是用来选择doc的路径的,output filename是用来给输出的chm一个名字,以.chm结尾,title是打开chm后首页的文字

我这里以制作Hadoop2.7.1的帮助文档实例。选好目录后,点击Go就开始只做了,制作完成后,go按键变黑色可用,只做好的chm文档存放在你选择的html帮助文档的目录里。


文章名称:go语言手册chm go语言教程
分享地址:http://chengdu.cdxwcx.cn/article/ddsseoe.html