官方地址:
https://www.st.com/zh/development-tools/stvd-stm8.html
V2.3.1
)📍官网标准外设库:
https://www.st.com/zh/embedded-software/stsw-stm8069.html
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
文件夹保存到另一个独立的地方。因为这些标准外设库一般情况下不需要去修改它。
- 🔖在保留其他型号工程共存模式下,每个型号的工程单独进行设置方法:
🍁容量信息显示参考前面相关篇文章内容。
chex -o $(OutputPath)$(TargetSName).s19 $(OutputPath)$(TargetSName).sm8
chex -fi -o $(OutputPath)$(TargetSName).hex $(OutputPath)$(TargetSName).sm8
size $(OutputPath)$(TargetSName).map
🎉这种方式将编译指定选择型号的工程进行编译。
🎋到这里,基本的库函数开发环境已经搭建好了。
/* 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