STM8低门槛快速入门,类似Arduino封装库模式开发介绍

文章介绍了STM8的低门槛开发方法,使用类似Arduino的封装库,基于SDCC编译器和STVD环境。虽然原作者已停止维护,但现有的框架仍可用于轻度开发。项目包括STVD工程案例和对不同外设的支持,同时提到了如何配置CosmicCxSTM8编译工具链,以及针对程序大小的编译优化建议。
摘要由CSDN通过智能技术生成

STM8低门槛快速入门,类似Arduino封装库模式开发介绍


  • 📌STM8外设封装库原项目开源地址:https://github.com/gicking/STM8_templates
  • 📍个人整理过的项目地址:https://github.com/perseverance51/STM8-Templates
  • 🏳‍🌈说明:类似Arduino封装库,并不是在Arduino平台来开发STM8。开发模式是基于SDCC和STVD环境的。编译速度是Arduino开发环境没法比的。

📓STM8外设封装库介绍

单独从所提供的外设库和ST官方所提供的标准外设库差异不大,主要区别在于,在使用外设的开发例程里已经做好了进一步的封装,并补充了常见的串口调试输出接口函数,以及其他功能和外设的使能。虽然原作者已经停止了维护,但是已开发出来的框架还是可以使用的。
  • 🌿对于轻度开发者来说,可以拿来即用,易上手。如果是做单片机重度开发,那么就不推荐使用,毕竟STM8硬件资源有限,主要满足低端类产品的开发需求。

📝编译器说明

  • 🖋该库提供了STVD开发工程案例,外设库也支持SDCC编译器。个人没有具体使用SDCC编译器测试过。

🏳‍🌈外设例程说明

  • 📋原作者已经停止维护。在原作者的基础上,对STVD开发平台所有项目进行了编译测试,保证都能通过。但是不保证所有程序,烧录到目标芯片上都能达到预期效果,这一点需要自己验证。
  • 🚩个人整理的内容中添加了使用外部时钟源相关代码。
  // switch to 16MHz (default is 2MHz  1/8)
//  CLK.CKDIVR.byte = 0x00; //默认选择内部时钟源,时钟不分频,16MHz

	CLK.ECKR.byte = 0x01;/*高速外部晶体振荡器使能*/
	 while (!(CLK.ECKR.byte & 0x02));/*HSE准备就绪*/
	 CLK.SWCR.byte |= 0x02;   //swen enable  Conversion Enables the automatic conversion mode
    CLK.SWR.byte  = 0xB4;   //Select HSE CLK
    while (!(CLK.SWCR.byte & 0x08));   //WAIT
		CLK.SWCR.byte &=~0x02;//禁止时钟切换
		
		CLK.ICKR.byte |=~0x01;	//disable HSI
  • 🌿主要的业务代码还是在main.c中写,如果不需要修改时钟和时基的情况下。main.c中的函数最终时放在了main_general.c中执行。
    在这里插入图片描述

🌼外设项目架构

  • 🍁STVD 工作空间,使用不同的外设需要包含对应的源文件和头文件。
    在这里插入图片描述

🛠STVP编译工具链配置

  • 🔨需要安装:Cosmic CxSTM8,如果项使用最新的,就去官方下载,可以申请免费使用一年的许可。不使用最新的可以下载国内提供的和谐版本:Cosmic CxSTM8 32K 4.3.4,在各大资源网站可下载到。

  • 🔧安装好后,项目配置:
    在这里插入图片描述
    在这里插入图片描述

  • 👉🏻stm8单片机型号选择/切换:
    在这里插入图片描述

  • 📐生成独立的HEX文件
    在这里插入图片描述

chex -o $(OutputPath)$(TargetSName).s19 $(OutputPath)$(TargetSName).sm8
chex -o $(OutputPath)$(TargetSName).HEX $(OutputPath)$(TargetSName).sm8
  • 🎉个别项目需要修改存储模式:(例如在使用SD-card_fatFS例程)

✨如果个人使用时,程序很大,编译报错时,也可以修改。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值