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

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

       可能大家都会有这种类似的感觉,在学校的时候会接触到很多网络学习资料,现在学习资源比起几年前,甚至十几年前可以说丰富了很多,各种琳琅满目地开发板,各类线下培训和线上网课仿佛能让人很快入门一门技术,至少跑了跑例程,做了做练习好像是知道怎么回事了,但其实真的距离掌握还有很远,也距离批量转产的产品要求误差甚远,甚至带入了一些不好的习惯。举个例子,现在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张图片

努力更新技术博客,赠人玫瑰手留余香_第2张图片

努力更新技术博客,赠人玫瑰手留余香_第3张图片

努力更新技术博客,赠人玫瑰手留余香_第4张图片

你可能感兴趣的:(fpga开发,stm32,arm,单片机,硬件工程)