搜索
查看: 3482|回复: 8

[原创] 【STM8-SO8】08-STM8L001J3的点灯

[复制链接]

该用户从未签到

26

主题

2070

帖子

6

蝴蝶豆

论坛元老

最后登录
2021-3-31
发表于 2019-2-19 23:46:08 | 显示全部楼层 |阅读模式
本帖最后由 slotg 于 2019-2-19 23:52 编辑

测试过 SPI 之后接下来的目标是想熟悉一下 UART 的功能,由于 STM8S001J3 已经摸索了一段时间了,因此有了一个想法就是想改用 STM8L,让 STM8L001J3 与 STM8L050J3 之间透过 UART 的方式互传资料,由于我是使用库函数的方式编写程序,因此直觉上认为 STM8S 与 STM8L 的库函数使用方式应该是相同的,我下载了库 en.stsw-stm8016.zip,新建了一个 STM8L001J3 的工程文件,参考了 【STM8-SO8】01-点灯 的工程文件修改差异之后重新编译后竟然出现了错误!

P01.JPG

哦!怎么会有错误呢?查看了库函数说明文件才知道我目前使用的这个 STM8L 库跟原本使用的 STM8S 库 en.stsw-stm8069.zip 是有点不一样的!除了文字会有大小写差异之外,库函数也不是完全相同的。

比如说对于 GPIO 引脚的指定,原本是:
#define LED3_GPIO_PINS  (GPIO_PIN_5)

而现在是:
#define LED3_GPIO_PINS  (GPIO_Pin_5)

原本是:
GPIO_Init(LED3_GPIO_PORT, (GPIO_Pin_TypeDef)LED3_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_FAST);

现在是:
GPIO_Init(LED3_GPIO_PORT, (GPIO_Pin_TypeDef)LED3_GPIO_PINS, GPIO_Mode_Out_PP_Low_Fast);

在 STM8S 库里使用了 GPIO_WriteReverse() 函数反转 GPIO 的输出状态,而这个函数在 STM8L 库里是没有的,因此改用了 GPIO_ToggleBits() 实现相同的功能。

main 回圈:
  1. void main(void)
  2. {

  3.   GPIO_Init(LED1_GPIO_PORT, (GPIO_Pin_TypeDef)LED1_GPIO_PINS, GPIO_Mode_Out_PP_Low_Fast);
  4.   GPIO_Init(LED2_GPIO_PORT, (GPIO_Pin_TypeDef)LED2_GPIO_PINS, GPIO_Mode_Out_PP_Low_Fast);
  5.   GPIO_Init(LED3_GPIO_PORT, (GPIO_Pin_TypeDef)LED3_GPIO_PINS, GPIO_Mode_Out_PP_Low_Fast);
  6.   
  7.   while (1)
  8.   {
  9.     GPIO_ToggleBits(LED1_GPIO_PORT, LED1_GPIO_PINS);
  10.     Delay(0xFFFF);

  11.     GPIO_ToggleBits(LED2_GPIO_PORT, LED2_GPIO_PINS);
  12.     Delay(0xFFFF);

  13.     GPIO_ToggleBits(LED3_GPIO_PORT, LED3_GPIO_PINS);
  14.     Delay(0xFFFF);   
  15.   }
  16. }
复制代码

不太能够理解同样是 STM8 的 MCU 怎么库函数会不一样呢?是不同的库由不同的团队开发,而大家的编程习惯不一样所产生的差异吗?


源代码:
B10.rar (1.12 MB, 下载次数: 101)
回复

使用道具 举报

该用户从未签到

6

主题

1029

帖子

133

蝴蝶豆

金牌会员

最后登录
2021-4-24
发表于 2019-2-20 09:51:10 | 显示全部楼层
关注
回复

使用道具 举报

该用户从未签到

0

主题

5

帖子

0

蝴蝶豆

初级会员

最后登录
2022-2-6
发表于 2019-3-6 22:50:16 | 显示全部楼层
楼主你的主函数里不要加5秒延时吗?
回复 支持 反对

使用道具 举报

该用户从未签到

26

主题

2070

帖子

6

蝴蝶豆

论坛元老

最后登录
2021-3-31
 楼主| 发表于 2019-3-7 08:35:00 | 显示全部楼层
winddancer7 发表于 2019-3-6 22:50
楼主你的主函数里不要加5秒延时吗?

程序中我没有使用到 pin1 的功能(SWIM),因此没有加上5秒的延时。
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

4

帖子

0

蝴蝶豆

新手上路

最后登录
2019-12-27
发表于 2019-11-25 20:15:41 | 显示全部楼层
关注
回复

使用道具 举报

该用户从未签到

0

主题

4

帖子

0

蝴蝶豆

新手上路

最后登录
2019-12-27
发表于 2019-11-25 20:16:57 | 显示全部楼层
程序中我没有使用到 pin1 的功能(SWIM),因此没有加上5秒的延时。
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

4

帖子

0

蝴蝶豆

新手上路

最后登录
2019-12-27
发表于 2019-11-25 20:17:17 | 显示全部楼层
为啥答复不了
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

9

帖子

0

蝴蝶豆

新手上路

最后登录
2020-7-18
发表于 2020-5-10 14:58:44 | 显示全部楼层
关注
回复

使用道具 举报

该用户从未签到

0

主题

1

帖子

0

蝴蝶豆

新手上路

最后登录
2020-11-19
发表于 2020-11-19 18:04:12 | 显示全部楼层
支持
回复

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2024-4-27 10:05 , Processed in 0.196189 second(s), 41 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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