搜索
查看: 1369|回复: 0

[分享] 从STM8S转到STM8L开发时要注意的几个问题

[复制链接]

该用户从未签到

193

主题

194

帖子

0

蝴蝶豆

金牌会员

最后登录
2021-3-12
发表于 2021-3-2 13:02:51 | 显示全部楼层 |阅读模式
从STM8S转到STM8L开发时要注意的几个问题

ST公司的STM8S与STM8L系列虽同属STM8内核的8位机阵容,但二者还是有较大差异。STM8S系列是标准通用型系列,而STM8L属于超低功耗系列。STM8L有更为丰富的外设和低功耗管理模式,有更低的工作电压、更宽的工作电压范围。STM8L系列在穿戴式产品和智能家居应用领域有着广泛的应用空间。

这里不对二者的差异做拓展表述,主要想给那些用过STM8S系列MCU后打算使用STM8L系列的工程师一些提醒,即从STM8S开发转向STM8L时常常可能遇到的几个问题,算是抛砖引玉。

1、STM8S 与 STM8L 两个系列的ST官方外设标准固件库是不一样的,各自有一套。另外,各自的寄存器编程手册也不一样,即参考手册不一样。

2、这个也是遇到最为频繁的问题,就是默认的外设时钟开关问题。
对于STM8S芯片而言,各个外设时钟在芯片复位后,默认就是打开的。而STM8L系列,则恰恰相反,各个外设时钟在芯片复位后,默认就是关闭的。经常有人从8S芯片转过来开发STM8L芯片时,在这里卡壳,遇到外设不工作啊,调试时相关外设寄存器根本没法设置等。

3.1.jpg

3.2.jpg

3、EXTI外部中断请求标志位问题。这个问题也是经常有人遇到的。
STM8L系列芯片里有相关外部中断请求标志位,而STM8S没有相关标志。如果STM8L中断程序里如果像STM8S那样不做相关外部中断请求标志的清除的话,后果很严重。会出现中断循环往复进入,常给人死机现象。

3.3.jpg

4、ADC启动的问题。

有一次某工程师用STM8L芯片开发程序,之前用STM8S芯片开发过产品。在编写代码时往往沿袭STM8S的写法。在用到STM8L芯片AD时,发现怎么也不工作。
查看其代码,他像很多使用STM8 MCU的工程师一样也是直接操作寄存器。因为他说是从8S的代码改过来的,我先对着STM8S的MCU参考手册比对,貌似没啥问题,再对着STM8L的ADC相关寄存器部分看了一会。 发现8S和8L芯片在AD上电后,开启AD转换的指令是不一样的。他的代码在该处有问题。
STM8L芯片在AD上电稳定后,开启AD转换是通过设置ADC_CR1里的START位,而8S芯片则不是,还是通过二次置位ADON位来启动AD转换。

3.4.png

3.5.png

最后顺便提下,对于STM8S或STM8L的ADC模块,上电开启后需要一段稳定时间,STM8S芯片需要大概7US左右,而STM8芯片需要3US左右。编程时适当注意下。

3.6.png

总之,STM8S系列与STM8L系列差别还是很大的,在从STM8S开发转向STM8L系列时,出现了问题不要执着于”STM8S平台上用得好好的”心理,最好结合STM8L参考技术手册具体核对验证为宜。

文章出处: 茶话MCU

回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-29 23:41 , Processed in 0.147519 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表