一晃眼已经离开学校工作了第四个年头,从懵懵懂懂地走上嵌入式研发这条道路,到一路上磕磕绊绊不断在成长和收获,写一篇博客给曾经的自己,也写给更多在校读书的同学们和准备在这条道路上一起深耕的朋友们。

可能大家都会有这种类似的感觉,在学校的时候会接触到很多网络学习资料,现在学习资源比起几年前,甚至十几年前可以说丰富了很多,各种琳琅满目地开发板,各类线下培训和线上网课仿佛能让人很快入门一门技术,至少跑了跑例程,做了做练习好像是知道怎么回事了,但其实真的距离掌握还有很远,也距离批量转产的产品要求误差甚远,甚至带入了一些不好的习惯。举个例子,现在stm32的各类教程几乎都是正点原子的基础上修改,当然作为学习没有任何问题,比如stm32串口中断一个个字节接收数据,嵌套了一些函数、宏定义和定时器中断等等。但实际项目中几乎没人会这样做,因为频繁进中断太消耗mcu的资源了,甚至还需要有定时器做报文超时判断代码会变得逻辑混乱,大部分工程中都会采用dma+空闲中断的方式接收报文,如果加入Freertos,还需要添加消息队列,握手机制和重发机制等,需要把报文根据实际需求整合成一个标准的结构体,方便发报和解报,类似地这样的情况还有很多。

工作四年也做过几款批量的产品,一方面为了及时总结自己,另一方面也为了方便他人少走弯路,逐渐正在交叉更新stm32、fpga的博客,当然后期会再更新arm liunx方面的技术博客,把工作中所积累的规范代码架构整理成一个个经典例程,这里希望赠人玫瑰,手留余香吧,也不玩花钱下载的套路,只需点下关注至少给些精神上的支持吧!每次博客的最后会把代码和对应原理图的百度网盘链接都附上,因为笔者也是从不懂到懂,从不会到会,所以总结地相对来说总结得比较全面和完整,站在读者角度更容易吸收理解和掌握,可以毫不夸张地说这些写到简历中全是一个个加分项。

思来想去,因为stm32最常用的有f103、f407、f429,一般来说f103用得比较广泛,但是资源和主频相对f407和f429来说比较低端些,所以笔者通过f103的一块小板,把串口IAP配合上位机升级其中包括bootloader编写和app跳转、串口dma+空闲中断、mcu裸机的经典程序架构、USBTMC移植、Freertos系统移植消息队列的设计等等工程代码逐一呈上;通过f407的一块开发板把Lwip移植,搭配Freertos系统,f407通过TCP/IP、UDP、USBTMC、RS232等多种接口把上位机发来的数据转为TTL电平通过串口发送出去,其实真正掌握了这些已经完全可以胜任一般情况下的stm32开发工作,最后f429一般用来作为人机界面的主控mcu使用,通过f429开发板,把FAT32 U盘系统的移植和二次开发,Modbus-RTU、SCPI库移植等,以及基于Emwin人机界面设计的控件库和后台逻辑编写等程序架构,再次归纳总结完善成工程代码。

fpga方面笔者打算更新20个例程,由浅到深,代码书写规范也采用目前非常流行的Gvim编辑器模板,深思熟虑以后,分为七个小节,站在学习实践的角度,既考虑了学习上的循循渐进,同时又包含了工程上的知识要点,就用笔者DIY设计的Artix7开发板逐一实现。当然如果后期还有精力时间,博客得到更多关注有更多动力,会继续更新stm32和fpga联合的实战项目例程,以及SATA 、PCIE、SFP等常用高速接口在fpga上的实现,在数字信号处理中CORDIC、FFT、IFFT、DDS IP核,常用滤波器CIC、FIR、IIR IP核的使用细节等。

一、典型基础入门,小试牛刀

1.不同按键控制不同LED亮灭;

2.按键控制蜂鸣器输出PWM波,发出不同频率响声;

二、常用通信协议,摸索探究

3.RS232通信缓存数据;

4.串行DAC输出模拟电压控制LED亮度;

5.温度传感器实时采集温度;

三、数据断电存储,工程必备

6.EEPROM的任意地址读写断电存储;

7.FLASH读写断电存储;

8.SD卡任意地址的读写;

四、内存颗粒缓存,进阶之路

9.DDR3内存通过UART读写;

10.遍历DDR3芯片颗粒读写循环校验;

五、外设接口通信,举一反三

11.USB2.0接收并回复CRC16位校验;

12.千兆网口实现MDIO接口读写;

13.千兆网口实现ARP通讯协议;

14.千兆网口实现ICMP、UDP通讯协议;

六、图像显示处理,经典再现

15.VGA显示八种颜色的彩条;

16.HDMI显示彩色风景图;

17.SD卡存放图片逐一送VGA/HDMI灰度化显示;

七、实战项目提升,完善简历

18.SD卡存放音频WAV播放;

19.OV7725摄像头实时采集VGA/HDMI显示边缘检测;

20.USB2.0/RS232/LAN控制并行DAC输出任意频率正弦波、梯形波、三角波、方波;

努力更新技术博客,赠人玫瑰手留余香相关推荐

  1. 赠人玫瑰,手有余香-期待协作更新机器学习的公益项目

    黄海广博士在github开源了吴恩达老师的机器学习及深度学习个人笔记,并公布了<统计学习方法>的代码实现,对机器学习入门起到一定的作用.但是个人力量始终有限,期待广大的机器学习爱好者协作更 ...

  2. 送人玫瑰手留余香——分享快乐、快乐分享

    坐公交的时候喜欢看窗外的风景,有时候会静静的想一些事情,有一次突然想到一个设想,如果一个人心善帮下个人付了1块钱公交费,下个人上车后一看,想到有人给自己付了钱很高兴(哇塞,天上真的会掉馅饼啊,我也给别 ...

  3. html锯齿边框,css3制作邮票(锯齿边框)-css3制作邮票(锯齿边框)-HTML5+CSS3-编玩编学- 注重积累的过程 快速锁定问题解决问题 写博客,在积累源码,持续更新技术博客,加分项...

    css3制作邮票(锯齿边框) html: css: body,h1,h2,h3,h4,ul,li,div,a,p{ margin: 0; padding: 0; font-family: arial; ...

  4. 授人玫瑰 手留余香 --纪念python3.2.3官方文档翻译结束

    当你点击看到这篇文章的时候,你已经得到了祝福.一个来自夜深人静的码农,在2014年5月19号的01:18分,默默为你献上祝福.希望你,我和他,每一个在IT行业中奋斗的人,能找到属于自己一片天空. 在翻 ...

  5. 送人玫瑰 手留余香!(上星期日为张玉朵募捐.义卖)

    在上星期日为张玉朵募捐.义卖,冒雨参加活动!!!但大雨阻止了不少有爱心的人赶到现场.友谊宾馆和天津路口的水真深啊,淹到了我的大腿根,我的裤子全都湿了.不知是不是老天在考验我们的意志,雨时大时小,就是没 ...

  6. 收藏的技术博客链接(不断更新)

    这里收藏了一些不错的的技术博客和文章的链接,供平时学习和参考,经常看看还是很有收获的.链接列表会不定时更新,列在这里就当是书的目录了. (1)技术文章系列: 前端技术:http://www.cnblo ...

  7. “我有必要写技术博客吗?” 写技术博客一年,谈谈其得失优劣

    本文全文不含任何推广,所提到的博主.公众号皆为笔者真真切切接触.学习过的. 大三上学期读了许多"程序员"的公众号,当时计算机基础知识并不好,很多文章读的一知半解.只记得关注了几个很 ...

  8. 手把手教你写高质量Android技术博客,画图工具,录像工具,Markdown写法

    前言 作为程序员,写博客是一件很有意义的事情,可以加深自己对技术的理解,可以结交更多的朋友,记录自己的技术轨迹,而且分享可以让更多的人从中受益,独乐乐不如众乐乐嘛. 但是要写好博客也不是件容易的事,一 ...

  9. 【转】2009最受欢迎中国技术博客评选(PB50)结果公布

    出处:http://www.cnblogs.com/jeffreyzhao/archive/2009/10/09/popblogger50.html 国外有博客评选榜单,记得之前也有人提议国内也做一下 ...

最新文章

  1. 分享一个 markdown 编辑器 - Mditor
  2. graylog - collecting Failed and Accepted logins for your SSH
  3. 使用Exiv2读取图像属性的详细信息
  4. 寻找GridView中模板列中的控件
  5. 一些非常有用的备忘录文档
  6. 特斯拉上海工厂开工 Model 3月销量有望破万
  7. MOS管正确选择的步骤
  8. 利用容器来拆分字符串
  9. mysql查球队胜场和败场sql_NBA球队_nba有哪些球队_NBA史上实力最弱的球队是哪个?用Python+SQL我们找到了答案...
  10. 网络编程中udp,tcp.客户端,和服务器端。运用到的软件,串口调试助手 NetAssist
  11. 【EJB学习笔记】——EJB开发环境搭建(Eclipse集成JBoss)
  12. opmanager邮件告警配置
  13. 安全电子签章密码技术规范_「签签课堂」(四)一篇读懂电子合同的专业术语...
  14. rust服务器消失了_【Rust日报】 20190619:Facebook的数字货币项目Libra由Rust实现
  15. essay写作要点以及正确的书写格式
  16. 正弦波的生成及混频器
  17. 2019年研究生入学考试北京理工大学计算机专业基础813真题回忆
  18. linux内存占用过高问题解决方法
  19. 【2020 ACM Fellow 华人学者】 陶宇飞 香港中文大学
  20. 详解Material Design体系组件

热门文章

  1. mac怎么打开home文件夹?
  2. Linux输入子系统简析
  3. Outlook Express 收件箱修复
  4. CSS设置样式的三种方式
  5. 第一章 YUI3开发环境搭建
  6. java和签名工具_java 证书工具keytool生成自签名证书和自签CA证书
  7. DownloadManager的使用
  8. (人事)电话面试时需要注意什么\真诚、自然、礼貌就好
  9. Ubuntu10.04登陆界面键盘无法用
  10. android marginLeft与marginStart