正文
go语言github合集 go语言 gin
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
【原创】树莓派3B开发Go语言(四)-自写库实现pwm输出
在前一小节中介绍了点亮第一个LED灯,这里go语言github合集我们准备进阶尝试下,输出第一段PWM波形。(PWM也就是脉宽调制,一种可调占空比go语言github合集的技术,得到go语言github合集的效果就是:如果用示波器测量引脚会发现有方波输出,而且高电平、低电平的时间是可调的。)
这里爪爪熊准备写成一个golang的库,并开源到github上,后续更新将直接更新到github中,如果go语言github合集你有兴趣可以和我联系。 github.com/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) 源码
Github上的一些高分Qt开源项目
TileMap
著名go语言github合集的TileMap编辑器go语言github合集,做2D游戏开发go语言github合集的一定不会陌生。
litego
Go语言go语言github合集的集成开发环境。
Clementine Music Player
功能很完善且跨平台支持做得很好的音乐播放器,完成度高,跨平台项目可以参考它。
QtAV
官网:
FFmpeg的Qt封装,国人的作品,为你点赞go语言github合集!
shotcut (视频编辑软件)
产品级的开源作品,值得研究。
qTox
功能强大的IM客户端
livehelperchat
livehelperchat (IM客户端):
基于XMPP 协议的聊天客户端
qupzilla
产品级的开源作品,值得研究。
otter-browser
otter-browser (另一款Qt开发的Web浏览器):
CuteMarkEd (Qt开发的Markdown编辑器)
Rythem (Qt版的fiddler)
网络文件传输客户端
官网:[ ]( )
ProjectTox-Qt-GUI (简版IM)
screencloud (截屏分享工具)
notes (记事本)
QFramer :(UI封装,国人作品)
OAuth 2.0 for Qt
JQTools , Jason Qt Tools 的简称
QtAwesome (Font Awesome support for Qt applications)
PacketSender
用于发送/接收TCP,UDP,SSL的网络工具,目前已经有桌面版、Android版本、IOS版本
Network utility for sending / receiving TCP, UDP, SSL
QGIS
QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)
一款免费、开源、跨平台(支持Linux、Windows、Mac)的地理信息系统(GIS)。
QtCipherSqlitePlugin
带有加密功能的 SQLite Qt 插件-QtCipherSqlitePlugin
A Qt plugin for ciphered SQLite.
RedisDesktopManager
跨平台开源 Redis ® 管理工具
RDM 是易于使用的 GUI 工具,可用于 Windows,Linux,MacOS 和 iPadOS。
Cross-platform GUI management tool for Redis
刘典武老师的CSDN:
刘典武老师的Github:
Go语言的开源项目
1.Docker项目
网址为 。
介绍:Docker是一种操作系统层面go语言github合集的虚拟化技术go语言github合集,可以在操作系统和应用程序之间进行隔离,也可以称之为容器。Docker可以在一台物理服务器上快速运行一个或多个实例。例如,启动一个Cent OS操作系统,并在其内部命令行执行指令后结束,整个过程就像自己在操作系统一样高效。
2.golang项目
网址为 。
介绍:Go语言的早期源码使用C语言和汇编语言写成。从Go 1.5版本自举后,完全使用Go语言自身进行编写。Go语言的源码对go语言github合集了解Go语言的底层调度有极大的参考意义,建议希望对Go语言有深入了解的读者读一读。
3.Kubernetes项目
网址为 。
介绍:Google公司开发的构建于Docker之上的容器调度服务,用户可以通过Kubernetes集群进行云端容器集群管理。
4.etcd项目
网址为 。
介绍:一款分布式、可靠的KV存储系统,可以快速进行云配置。
5.beego项目
网址为 。
介绍:beego是一个类似Python的Tornado框架,采用了RESTFul的设计思路,使用Go语言编写的一个极轻量级、高可伸缩性和高性能的Web应用框架。
6.martini项目
网址为 。
介绍:一款快速构建模块化的Web应用的Web框架。
7.codis项目
网址为 Labs/codis。
介绍:国产的优秀分布式Redis解决方案。
8.delve项目
网址为 。
介绍:Go语言强大的调试器,被很多集成环境和编辑器整合。
awesome-go:很全的go语言资源合集
awesome-go :一个很全go语言github合集的go语言框架go语言github合集,库,软件合集
前面发过关于awsone-python, awsone django, flask。最近在学习golang,所以找到awsone-go
由于内容太多,这里只是列出主要的目录,每一项下面又有很多内容。具体详细的内容,请到官网查看。
github网址 ,
官网 。
GitHub Go项目推荐|Golang下的命令行颜色渲染工具库|支持windows
Golang下的命令行色彩使用库, 拥有丰富的色彩渲染输出,通用的API方法,兼容Windows系统
仓库名称 :color
标星(star) :221 (不错哦,潜力股项目)
标星趋势
拷贝(fork) :21
贡献人数 :3
仓库大小 :1 MB
主要开发语言:Go
语言分布:Go:99.75%、Batchfile:0.25%
代码提交周期分布 :
作者动态 :
2星
Golang下的命令行色彩使用库, 拥有丰富的色彩渲染输出,通用的API方法,兼容Windows系统
功能特色
程序员新视界:分享有趣、有料的程序员话题,每天进步一点点。
go语言import时为什么都从github导入
因为github是一个汇集go语言github合集了好多写好go语言github合集的代码go语言github合集的库。所以大家都从那里下载。
其实你import的时候go语言github合集,那个库已经go get到了本地了。
go语言github合集的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于go语言 gin、go语言github合集的信息别忘了在本站进行查找喔。