STM8S系列基于STVD开发,标准外设库函数开发环境搭建
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM8S系列基于STVD开发,标准外设库函数开发环境搭建相关的知识,希望对你有一定的参考价值。
STM8S系列基于STVD开发,标准外设库函数开发环境搭建
- ⏳相关篇《STM8-STVD+Cosmic编译输出信息参数配置》
- 🎈STVD-STM8软件
官方地址:
https://www.st.com/zh/development-tools/stvd-stm8.html
- 📌STM8S/A标准外设库(库版本
V2.3.1
)
📍官网标准外设库:
https://www.st.com/zh/embedded-software/stsw-stm8069.html
- 📍cosmic stm8 32k C编译器 v4.3.4
https://www.jb51.net/softs/626867.html#downintro2
🌻从外设标准库中拷贝通用模板
-
🔗拷贝一份
STM8S_StdPeriph_Template
文件夹
-
🧺删除其中的
EWSTM8
(这个是IAR开发环境的模版,这里不需要) -
⛳打开已安装的STVD软件,菜单
File
-Open Workspace
-
✅找到目录下的
\\STM8S_StdPeriph_Template\\STVD\\Cosmic\\Project.stw
打开。
-
🌿在弹出的对话框一路点
Yes
。
- 📜得到一个多型号的工程
-
🛠根据自己的开发板型号保留其对应的开发配置内容,其他的无关的型号的可以删除,也可以不删除,这一点,后面将做额外补充说明。
-
⚡在保留多工程模式下,按Shift键 + F7键,或者菜单
Project
-Settings
,设置源文件路径:(这里默认设置的是结构树中的第一个工程stm8s208
)
- 🚩推荐将
\\en.stsw-stm8069\\STM8S_StdPeriph_Lib\\LibrariesSTM8S_StdPeriph_Driver
文件夹保存到另一个独立的地方。因为这些标准外设库一般情况下不需要去修改它。
- 🔖在保留其他型号工程共存模式下,每个型号的工程单独进行设置方法:
- 🔧设置编译生成Hex文件以及显示编译信息:
🍁容量信息显示参考前面相关篇文章内容。
chex -o $(OutputPath)$(TargetSName).s19 $(OutputPath)$(TargetSName).sm8
chex -fi -o $(OutputPath)$(TargetSName).hex $(OutputPath)$(TargetSName).sm8
size $(OutputPath)$(TargetSName).map
- 🌼效果如下:
在保留其他开发型号时,编译方法
- 🔨在所选型号上右键,选择编译。
🎉这种方式将编译指定选择型号的工程进行编译。
🎋到这里,基本的库函数开发环境已经搭建好了。
🌻库函数下,GPIO点灯示例
/* Includes ------------------------------------------------------------------*/
#include "stm8s.h"
/* Private defines -----------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
#define LED_GPIO_PORT (GPIOD)
#define LED_GPIO_PINS (GPIO_PIN_7 | GPIO_PIN_3 | GPIO_PIN_2 | GPIO_PIN_1 | GPIO_PIN_0)
/* Private functions ---------------------------------------------------------*/
void Delay (uint16_t ms);
void main(void)
GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_FAST);
/* Infinite loop */
while (1)
/* Toggles LEDs */
GPIO_WriteReverse(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS);
Delay(500);
/**
* @brief Delay
* @param nCount
* @retval None
*/
void Delay(uint16_t ms)
uint16_t i,j;
for ( i=0; i<=ms; i++)
for ( j=0; j<120; j++) // Nop = Fosc/4
_asm("nop"); //Perform no operation
#ifdef USE_FULL_ASSERT
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval : None
*/
void assert_failed(u8* file, u32 line)
/* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d\\r\\n", file, line) */
/* Infinite loop */
while (1)
#endif
📚工程模版
✨以stm8s903芯片创建的模版
链接:https://pan.baidu.com/s/1Hppuz100bbALZQ8BWuQx4A
提取码:06hu
以上是关于STM8S系列基于STVD开发,标准外设库函数开发环境搭建的主要内容,如果未能解决你的问题,请参考以下文章