找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 21691|回复: 16
打印 上一主题 下一主题
收起左侧

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

  [复制链接]
跳转到指定楼层
楼主
ID:98618 发表于 2015-12-8 03:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
整理:MilerShao

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

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

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

2、这个也是遇到最为频繁的问题,就是默认的外设时钟开关问题。

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



3、EXTI外部中断请求标志位问题。这个问题也是经常有人遇到的。

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


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转换。




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

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

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

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

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

2、这个也是遇到最为频繁的问题,就是默认的外设时钟开关问题。

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



3、EXTI外部中断请求标志位问题。这个问题也是经常有人遇到的。

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


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转换。




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

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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏8 分享淘帖 顶2 踩
回复

使用道具 举报

沙发
ID:105267 发表于 2016-2-10 21:56 | 只看该作者
楼主这个文章写得真是有帮助啊  看着stm8s的视频学stm8l  第一课就卡壳
这个帖子怎么这么冷清呢
回复

使用道具 举报

板凳
ID:105267 发表于 2016-2-10 21:57 | 只看该作者
看了这篇良心文章 特地注册了账号顶一把楼主
回复

使用道具 举报

地板
ID:105397 发表于 2016-2-13 21:19 | 只看该作者
确实是好帖子,我也是做8L,用8S的改,已经哭瞎了
回复

使用道具 举报

5#
ID:126781 发表于 2016-6-18 08:07 | 只看该作者


mark……
回复

使用道具 举报

6#
ID:187087 发表于 2017-4-10 08:49 来自手机 | 只看该作者
stm8l学习教程示例比较难找,学习困难较多,还是51入门较易
回复

使用道具 举报

7#
ID:199645 发表于 2017-6-26 19:13 | 只看该作者
很给力
回复

使用道具 举报

8#
ID:36060 发表于 2017-6-28 13:31 | 只看该作者
要留个脚印,万一以后遇到stm8l的,可以参考楼主的经验。
回复

使用道具 举报

9#
ID:114987 发表于 2017-11-6 11:18 | 只看该作者
有没有完整的stm8l学习资料
回复

使用道具 举报

10#
ID:110369 发表于 2017-12-15 16:51 | 只看该作者
很有价值的资料。
回复

使用道具 举报

11#
ID:267738 发表于 2017-12-27 14:58 | 只看该作者
感谢大神的经验分享,我是STM8的初学者,能看到这么好的文章,非常感谢!
回复

使用道具 举报

12#
ID:47634 发表于 2018-2-17 21:57 | 只看该作者
很好的经验,值得学习
回复

使用道具 举报

13#
ID:109384 发表于 2018-10-8 10:27 | 只看该作者
你好,我想请教一个问题,我用STM8L151做一个项目,整个系统已经工作,但是把单片机重新焊下来之后,再焊回板子上就不能工作了,(板子的外围电路没有动),请问楼主你有碰到过这种情形吗?
回复

使用道具 举报

14#
ID:366409 发表于 2019-1-7 15:57 | 只看该作者
谢谢,很有用
回复

使用道具 举报

15#
ID:366409 发表于 2019-1-7 15:58 | 只看该作者
marking
回复

使用道具 举报

16#
ID:445069 发表于 2019-3-12 14:11 | 只看该作者
STM8S 与 STM8L 的对比,楼主的这篇文章太用心了。
回复

使用道具 举报

17#
ID:94359 发表于 2021-3-15 13:02 | 只看该作者
以后遇到stm8l的,可以参考楼主的经验。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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