STM8低门槛快速入门,类似Arduino封装库模式开发介绍 
  
 
- 📌STM8外设封装库原项目开源地址:https://github.com/gicking/STM8_templates
- 📍个人整理过的项目地址:https://github.com/perseverance51/STM8-Templates
- 🏳🌈说明:类似Arduino封装库,并不是在Arduino平台来开发STM8。开发模式是基于SDCC和STVP环境的。编译速度是Arduino开发环境没法比的。
📓STM8外设封装库介绍
单独从所提供的外设库和ST官方所提供的标准外设库差异不大,主要区别在于,在使用外设的开发例程里已经做好了进一步的封装,并补充了常见的串口调试输出接口函数,以及其他功能和外设的使能。虽然原作者已经停止了维护,但是已开发出来的框架还是可以使用的。
- 🌿对于轻度开发者来说,可以拿来即用,易上手。如果是做单片机重度开发,那么就不推荐使用,毕竟STM8硬件资源有限,主要满足低端类产品的开发需求。
📝编译器说明
- 🖋该库提供了STVP开发工程案例,外设库也支持SDCC编译器。个人没有具体使用SDCC编译器测试过。
🏳🌈外设例程说明
- 📋原作者已经停止维护。在原作者的基础上,对STVP开发平台所有项目进行了编译测试,保证都能通过。但是不保证所有程序,烧录到目标芯片上都能达到预期效果,这一点需要自己验证。
- 🚩个人整理的内容中添加了使用外部时钟源相关代码。
  // 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中执行。
  
🌼外设项目架构
- 🍁STVP 工作空间,使用不同的外设需要包含对应的源文件和头文件。
  
🛠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例程)
✨如果个人使用时,程序很大,编译报错时,也可以修改。






![Linux系统下 - [linux命令]查找包含指定内容的文件](https://img-blog.csdnimg.cn/284ce3cbc4554246827d1007d862a06e.png)













