当前位置: 首页 > 原理解释

stm8单片机原理与实践-STM8 单片机原理实践

stm8 这事儿,说实话,刚启动看的时候真挺困惑的。市面上型号一大把,今天用这个板子,明天换那款,最终可能还得去查手册,感觉像是在迷宫里找路。
不过实践了一把,发现它实际上挺有意思的,特别适合做小型管住器的原型机。 手上一堆元件摆齐了,心里那股子冲动就来了。STM8 核心是 8 位 ARM,这格局一下子就定了,不用操心几十位的流水线难题,主要是看能不能跑通 8 位数据流。记得第一次上电,面包板上的电阻值对不上,万用表盯着几秒,才敢把示波器探头插上去。
那时候心里就直打鼓:要是波形是正弦波,那就对了,要是是三角波,那我今晚得找点蜡烛持续烧。结局屏幕上一行字跳出来“CRC 校验黄了”,吓得我差点把手里的焊锡喷脸上。
这时候脑子里的戏码就多了起来:是不是晶振频率设错了?
是不是晶体没插好?还是我看错了代码里的字节序? 实际上这类难题最怕的就是“细节”。晶振频率务必拉准,不然整个系统要么像个定时钟,要么像个陀螺,彻底没法预测。我这次用的是 4 兆晶振,在 328p 上跑的是正弦波。
那波形挺规整,谐振频率算出来跟标称的 4 兆挺接近。但在这之前,得先预备好系统。STM8 的 GPIO 是 VCC 和 GND 供电,IO 口默认是浮动输入,故此接地线得接准,不然跳变的时候,示波器上的那个尖峰跟背道而驰的波形混在一起,根本看不清脉冲的上升沿和下降沿。记得我有一度把接地线接反了,屏幕上就乱成一团,得花半小时把线重新理齐,直到那串灰色的波峰终于稳定下来。 紧接着就是驱动电路这块了,大量人一上来就刷代码,结局变量定义都没弄明白,数据都跑偏了。STM8 有大量外设,比如定时器、ADC、PWM 这些,都得先把它们配置好。定时器最好办,分一下早中晚三种,每种周期都不一样。我这次把定时器 2 设成_pwm_13k,实际测量输出频率是 13.18kHz,跟理论值 13.58kHz 差了挺大,不对啊,难道晶振没实打实地用?仔细查了一下手册,发现晶振频率设成了 2 兆,而实际频率计算需求 4 兆晶振,这才把数据调正了。
这过程就像调整琴弦的长度,忒紧了弹不出音,忒松了越弹越乱,只有准了,声音才好听。 在调试数据的时候,你会发现 STM8 的 IO 口特性跟某些微管住器不忒一样。它没有独立的 PWR 按钮,并且时钟源贼多样,RS232、CAN、SPI、I2C 都能够通过软件配置。
那会儿学单片机总当作硬件架构固定,目前才发现,你连个串口都没连上,系统照样能用,只要电源接好了,只要晶振正常,它就能运行。
这种灵活性确实挺让人头疼的,万一连个单片机模块都搞不定,那更费事。
每次接线,都得小心翼翼地查一下那个小小的接线孔,别把脚焊偏了,那就得重新来。 另外,STM8 的 Flash 编程也是个大坑。市面上那种带编程器的工具挺多,但实际烧录时,数据擦除和写入的速度,跟理论上的配置还有出入。
特别是当 Flash 体积挺大,比如 32KB 或 64KB 的时候,工具里那个“预写入”参数得设准,不然烧录完系统就跑不动了。我有一次就是如此倒霉,把预写入设成了 100%,结局烧录的是旧数据,系统直接黑屏,那一刻确实心凉半截,直到把工具里的参数改回默认值,再试了一次。
后来明白了,每次烧录前都得先确认一下 Flash 里原来的数据是不是全被擦掉了,这一点忒关键了。 光靠烧录程序是不够的,还得看程序跑起来对不对。要确保中断机制是通的,子调用起来快不快,自动跳转的指令有没有写错。我在写一个定时器的应用程序时,发现定时器一直在跑,但计数值仿佛没在变,反复检查代码,发现定时器 2 的初值计算写错了,并且程序在定时器启动之前就已经执行了。便重启系统,重新跑了一遍,这次计数值终于启动跳动了。
那种感觉,就像是在做数学题,那会儿心算一套,目前得写下来算一遍,别看慢一点,但心里踏实。 有些细节别看小,但影响大。
比如屏幕显示,STM8 的 OLED 屏幕,要是没开启自动刷新,要么刷新频率设为 1Hz,实际上也是能用的,只是屏幕不动。
这真挺反感的。并且 STM8 的 C 语言别看难,但用变量名来命名,实际上挺有乐趣的。定义变量时,名字起得随意一点,比如用"count"要么"timer1",比写"t1"要么"timer"要顺口多,一看代码就懂,哈哈。 还有一点,就是看门狗。STM8 看门狗是用来保护系统的,一旦出错了工夫到,系统自己复位。
这机制抓得挺严,要是看门狗的设置不对,要么程序跑得忒慢,它就频繁复位,系统就没法用了。我在调试时发现,看门狗的看门周期和溢出计数,要是设得忒短,系统时常自复位,那就得把看门周期拉长一点,要么调整管住流程。
这实际上就是给系统装了个保险丝,别看不能彻底防止毛病,但起码能帮你把毛病留到明天。 总的来说,STM8 就像一个性格温吞但做事认确实同事。它不会一下子给你吓一跳,但要是你细心,它能帮你把所有细节都理顺,让你在做项目标时候,心里有底,手底下不乱。别看有时候得反复烧录、调试,就连重新画模拟图,但一旦通了,那种成就感确实特别强。
特别是看到波形一个个跑起来,代码一个个编译通过,整个主板发光闪烁的时候,那种感觉,比吃顿火锅强多了。
相关标签:

猜你喜欢

热门阅读

  • 赖柴尔定理-赖柴尔定理
  • 迪拜哪个国家的城市?-迪拜在哪国城市
  • 李毅吧番号及出处-李毅吧番号及出处
  • 贴春联的由来简介50字-春联由来简述
  • 思乡的名言和出处-思乡名言及出处

其他分站