从今年2022年元旦开通博客到现在基本接近一年了,真的会感到感觉时间飞逝,尤其当你全身心地投入一件工作上时,在FPGA基础篇和FPGA 20个经理例程篇后,又准备了STM32基础篇和STM32 10个工程实战篇,前两者即将收尾,而后两者即将开始,最后下定决心要去写STM32博客专栏,说真的也是需要很多勇气的,CSDN大牛太多写不好容易被喷,而且市面上原子、野火、硬石、安富莱的教程和开发板真的琳琅满目,还有各类付费的网络视频等。
既然是前言不涉及技术并且在周五晚上这个美妙的时间段,就即兴想到哪写到哪了,再次回到上面这些问题:第一、有没有必要花费很大的精力和物力去写STM32博客;第二、博客立足于什么或者说和那些市面教程有何区别,能不能做到通俗易懂,读者根据博客的说明和介绍动手实践后很快能消化吸收,实现项目中的二次开发;第三、10个工程实战的选型,写什么好,难道要重复按键、点灯、OLED显示等各路寄存器版本的demo,again and again,还是把近5年的研发项目经验通过这10个工程实战篇得到一个很好地映射,to be or not to be that's a question!
古人云:己所不欲勿施于人!大家都是从学生时代走过来,从本科就开始听大学老师一遍遍念叨谭浩强C语言和严蔚敏数据结构,接着就到了微机原理和数电模电,最后到了嵌入式实践课老掉牙的51单片机,重复着寄存器初始化和配置,本科毕业不管读研还是工作,当项目课题中用到单片机时,便是淘宝买上一块销量最好的,看来看去写来写去还是demo,永远都很混乱没有稳定性和实时性,永远都在if else上打补丁,更没有完整的代码逻辑架构。
笔者为了写STM32 10个工程实战专栏,亲手画了一块STM32F103RCT6,关于10个工程前5个是STM32本身,后5个是STM32+FPGA联合工作,结合近5年的研发经验暂时安排如下:
1. 裸机下基于rs232串口空闲中断的上位机iap升级;
2. 裸机下基于usbtmc和rs232和上位机的通信;
3. freertos的移植和任务分配,双编码器的控制和eeprom的读写;
4. lcd显示驱动的移植,emwin人机界面的搭建,flash存储开机logo;
5. freertos下的emwin人机界面系统搭建,编码器自由操控lcd菜单光标;
6. freertos下的stm32和fpga之间spi uart dma通信报文定义格式探讨与联调;
7. 上位机与fpga之间lan、usb、rs232通信,stm32屏幕上显示报文;
8. 上位机与stm32之间usbtmc、rs232通信,stm32用lcd屏幕选择fpga再通过lan或usb或rs232传给上位机;
9. stm32端的emwin界面的完善,包括stm32和fpga上位机接口界面,fpga端双dac控制界面,fpga端vga、hdmi、耳机座等接口界面等
10.fpga端的代码编写和stm32端的工程联调,具体功能还没有完全想好