一,多年的宿愿
上学时,就想着自己有空搞个自己的示波器硬件和软件
但,DIY示波器涉及的技术知识点还是很多的,
所以,一直没能完成理解,没学透。

二、近期买到一个STC32G新出的开源示波器,
感觉硬件和软件都相对容易学习,
所以就试着把软件原理拆解拆,一边拆一边自己学习学习。

1、拆解一周,只拆解了一开头
2、针对目前的这个程序原理来说,示波原理
(1)先做一个绘图功能函数
(2)用定时器快速采集AD存储起来
(3)用DMA模式实现快速绘图显示
(4)用定时器做个PWM的波形输出
(5)有了PWM与AD采集显示,基本就能完成一个可输出,可采集的DIY示波器

三、软件原理 

1、先给驱动接上个TFT,显示文字和数字
早期,没买到开发板之前,自己手工搭了一个TFT屏进行软件测试
还算幸运,很容易接通了。


2、有了TFT显示屏,自然,重要的是如何显示曲线和表格了
(1)首先建立一个数组来作波形曲线图的数据存储
(2)建立绘表格、会曲线点的函数,

3、建立AD采集函数,把数据存储到波形曲线图的数组中

4、通过绘图函数,快速把曲线绘制出来

四、一步一步重新搭建
逻辑说起来是相对容易的,但直要一步步去实现,还是有很多困难的
所以,我自己参考这个开源的程序,慢慢从头建立一个新的工程,
把每一步节点,分成了独立的工程文件
就象楼梯一样,一步一级的向上搭建

一步步拆解STC32G屠龙刀示波器开源程序,边学边用。相关推荐

  1. 《安富莱嵌入式周报》第292期:树莓派单片机100M双通道示波器开源,MDK5.38发布,万用表单芯片解决方案,8通道±25V模拟前端芯片,开源贴片拾取电机板

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

  2. 快速建站的php开源程序

    很多国外开源程序并不太符合中国人的使用习惯,而国内有一些厂家或个人也做了一些不错的产品,不少程序是提供源代码下载的,虽然有些在许可协议上和开源许可证有些出入,但其在使用上还是挺符合中国人的使用习惯,今 ...

  3. 学校APP太难用,码农爸妈们自己做出开源程序,官方却要报警

    明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 因学校APP太难用,码农爸妈们自己开发开源版本,结果反遭官方报警. 这年头,养孩子的难度系数也太高了吧. 而且绝不是家长们吹毛求疵,是APP ...

  4. 从零开始成为一名开源程序员,其实只需要九步!

    探索技术世界,是一件非常令人兴奋的事情.你会发现有非常非常多的领域,等待你去学习,去深挖.如果有兴趣参与和帮助创造更好的功能,加入到开源的队伍当中,你知道要从哪里开始吗?第一步该做什么?第二十步又是什 ...

  5. 那些开源程序中让人叹为观止的代码 - 3 保持元素纵横比

    本专栏尝试记录并分享一些个人在学习和使用开源程序代码的过程中,经意或者不经意间看到的个人感觉比较有参考价值的代码片段.个人感觉,并不是说能写或者能看得懂一些晦涩难懂的代码段子,就可以成为向别人炫耀的资 ...

  6. php源代码compress,Php常见开源程序gzip网页压缩功能手动关闭或开启方法大全

    GZIP是个啥玩意?啥东西哈?据度娘说,gzip是GNUzip的缩写,它是一个GNU自由软件的文件压缩程序.网站配置或启动这个东东,可以得到加速网站访问的目的,这个是一个非常实用的功能.那么,无忧主机 ...

  7. 开源程序识别图像像素点_开源浏览器扩展程序,可放大图像

    开源程序识别图像像素点 您是否曾经浏览过网站并希望看到更大的图像? 这无时无刻不在我身上发生,要做到这一点并不总是那么容易. 有时,我在源代码中进行筛选,使用Ctrl + F搜索图像,复制图像源地址并 ...

  8. 程序开源与不开源区别_如何在公司中启动开源程序

    程序开源与不开源区别 许多互联网规模的公司,包括Google,Facebook和Twitter,都建立了正式的开源程序(有时也称为开源程序办公室,简称OSPO),这是公司内部支持开源消费和生产的指定场 ...

  9. 程序员里面开源_如何以开源程序员的身份开始

    程序员里面开源 展望技术世界是令人兴奋的. 它有很多运动部件,似乎您越深入挖掘它,它越深入,然后它就一直是乌龟 . 因此,技术也势不可挡. 如果您热衷于加入并帮助塑造现代世界的运作方式,那么从哪里开始 ...

最新文章

  1. 深入浅出神经网络原理
  2. R语言基于glmnet构建分类模型并可视化特征系数(coefficient)以及L1正则化系数(lambda)实战
  3. 配置告警系统主脚本main.sh mon.sh load.sh 502.sh disk.sh
  4. 面试集锦(十六)架构设计
  5. 2019互联网大厂的月饼哪家强?
  6. idea设置文件多行显示
  7. 浏览器获取文件MD5值
  8. Jersey注解详解
  9. 数字化转型知识方法系列之三:以价值效益为导向推进数字化转型的五大重点任务
  10. SQL 中操作XML类型数据
  11. Densenet论文解读 深度学习领域论文分析博主
  12. 购物网站,网上购物系统,网上商城系统毕业设计
  13. 微信做图小程序有哪些_高质量的五个微信办公小程序,轻松提高工作效率,办公族必备...
  14. 惠普打印机如何设置扫描到计算机,惠普打印机怎样扫描文件到电脑
  15. 微信小程序接入知晓云插件sdk入门
  16. 基于ZigBee技术的智能家居系统实施方案
  17. 生活随记 - 上海普通百姓一个月的开销记录
  18. vue2 qrcodejs2链接生成二维码
  19. 【深度学习概述学习小结】
  20. Web前端学习笔记——CSS京东案例、BFC

热门文章

  1. Camera对焦的几种方式
  2. [原创][从mambo到joomla的迁移实战之三]网站由mambo迁移到joomla(未完待续)
  3. 新浪微博,说好的支持8位明星出轨呢?
  4. 详解使用Linux指令怎么更改文件名称
  5. [TM4C123单片机实践] 配置SSI并驱动DAC7811显示正弦波
  6. 个人对于SAR的粗浅理解
  7. RocketMQ消息发送常见错误与解决方案
  8. 顺序栈计算器 中缀转后缀表达式
  9. python中map()函数总结
  10. 安琪拉教鲁班学算法之动态规划