Walter

STM8之初体验

0
阅读(1548)

    在大学的时候学习的是8051,当时勉强能用汇编写一点点操作IO的小程序。然后毕业工作到了深圳,当接触到STM8的时候,总觉得这东西很神秘,很高深。所以当时用SMT8或者STC的单片机做视频处理芯片配置的电路,看都没有去看,只依赖于供应商的方案更新。

    今年来到国铁之后,在4月份出差的时候,无意中看了一点野火关于STM32的教程,从此开始了学习STM32的道路。记得当时没有带电脑,对STM32的程序也没有接触过,每天没事就在宾馆拿着手机上的教程抄。5月份第二次出差,带上电脑,准备好野火的教程,开始了在MDK上实际写代码,只是没有开发板可以把写出来的程序放到板子上去跑跑。当时对STM32程序开发工程的建立还不是很熟悉,照着教程,一遍又一遍的练习,最后终于大概了解了野火的工程结构,同时也在,和.h文件、模块化程序设计上面看了很多教程。当然,现在明白自己只是知道了,在模块化设计上面还有很长的路要走,还有很多方法,实际经验要学习。后面终于有开发板了,不过不是STM32F103,而是F407,内核属于Cortex-M4了,教程是正点原子的,开始看着很吃力,感觉以前看的都不适用了。慢慢的,又去一遍又一遍看了正点原子的教程。终于,熟悉了正点原子的工程结构,同时,也进一步了解了ARM程序设计的基础。

    后来,计划自己跟着正点原子的教程,一个实验一个实验学习一遍,写一遍代码,熟悉一下所涉及到的功能的一个基本用法。但是,后来因为每天这样那样的事情没有坚持下来,中间已经断了一个多月了。在一个就是每次照着例程写了相关部分的代码,没过一天又忘记了。还是觉得自己的方法有问题。

    这段时间又开始做硬盘拷贝工具,开始我负责硬盘端OLED的显示驱动,后来,经历了三个星期,自己的第一个用于实际项目的ARM程序出来了,还是有点小激动的。后面硬件回来后,在硬盘端的STM32F103上面使用起来还是挺顺利,没有出现过什么问题。但后面在手持机端的STM8上面使用,造成了一大堆问题。虽然现在问题仍然还是问题,不过感谢有这些问题,我才能进步。

    

    本来是另一个同事负责STM8部分代码的设计。有一天因他无法正确开启STM8的串口,所以我们一起讨论学习了一下。那天晚上,我查阅了很多资料,并且看了STM8的一些库函数。然后成功开启了STM8的USART1。我认为以后不管怎样,STM8是不能少的知识点,正好自己这部分没什么问题了,就开始看看STM8的开发。这是我STM8设计的开始,也是问题的开始。

    因此,我用了一天,边看STM8库函数例程,边写自己的代码。一路上很不顺利。从基本的IO口操作,到开串口,开定时器,然后实现逻辑组合。中间由于硬件设计依然存在问题,所以增加了解决软件问题的时间。

    后来负责STM8开发的同事另有事,就将这块完全交给我负责。现在问题越来越多了。不过也意识到自己的不足也越来越多了。

    这是好事儿!