人有多大力就办多大事”,STM32的功能远比51、AVR之类的单片机要强大得多,相对来说开发的产品功能比较大,代码也会比较复杂。首先有完整的框架是非常必须的,我个人认为这里的框架有两层,一个是在STM32上移植现有的操作系统或者一些稳定的代码框架,另外一个是自己的编程风格。你想很方便的开发相对复杂的东西,建议你首先在STM32上移植一个小型操作系统或一种框架,然后在操作系统之上编写你自己的应用去开发产品。在没有操作系统或框架的情况下开发是非常麻烦的事情。要做到条理清晰的话,那就应该去迎合操作系统或框架的风格去编写代码,这答案并不唯一。 举个简单例子,现在比较热门的STM32F103或STM32F407开发产品,一般会移植一个ucosii或rt-thread操作系统(当然也有移植linux或android的,但我个人很少见),ucosii我没实际开发过我就不说了,像rt-thread这样的实时操作系统,它具有多任务编程,那么我们就需要迎合它的特点,比如我串口作为一个线程,LCD、LED扫描作为一个线程,数据采集作为一个线程,键盘扫描作为一个线程等等,在他们的线程中只各自做自己的事情,然后在增加一个顶层的线程专门来负责处理其他线程所产生的消息事件(或者给其他各线程发送消息事件),顶层的线程是作为一个中心处理线程来合理安排和处理其他各个线程的消息事件。至于在这方面的提升,只能是通过实践来达到效果,这里的“实践”不是说要完全自己去摸索,你需要有东西来借鉴,因为现在一些操作系统、或框架、或编程风格都是比较成熟,你直接拿来看,看看别人是怎么写的代码,然后自己再去仿照着能不能写的出来,再分析里面的优缺点。你要是还在学校且资源有限,建议你可以花个几百块钱上淘宝买一个开发板,一般的开发板都有各个外设的实验,以及综合实验,或许还会有操作系统或框架的移植和使用
标签:编程,C++,stm32