优秀的编程知识分享平台

网站首页 > 技术文章 正文

手把手教STM8S系列单片机工程创建和下载

nanyue 2025-08-06 22:09:23 技术文章 9 ℃

目录

  • 一、STM8S系列单片机的编译环境
  • 二、STM8S系列单片机的下载方式
  • 三、基于IAR的STM8工程示例
  • 3.1 工程创建
  • 3.2 寄存器版
  • 3.3 库函数版
  • 3.4 编译生成可执行文件
  • 四、下载

一、STM8S系列单片机的编译环境

STM8系列的单片机的编译软件常用的有两种:一个是STVD,一个是IAR51单片机、STM32单片机的编译软件是keil。

二、STM8S系列单片机的下载方式

STM8S系列的单片机下载方式常用的有两种:1、SWIM接口下载:只需要四条线:3.3V,SWIM,GND,RST。IAR环境下支持下载和单步调试,但是批量操作很不方便。批量下载:软件推荐STVP。下载软件推荐STVP。2、串口下载,有两点要注意:要使能Bootloader,STM8只有105及以上的型号支持串口下载。下载软件是 Demonstrator GUI。下载注意:先上电,在下载。下载完,运行的话,断电,拔掉 st-link,在上电即可。

三、基于IAR的STM8工程示例

3.1 工程创建

新建工程基本配置步骤如下

  • 工程型号选择
  • 工程文件分组
  • 库函数文件、相关文件添加
  • 头文件路径设置

新建工程:

保存创建工程,尾缀 ewp:

保存创建工作空间,尾缀 eww:

指定芯片型号:

工程文件分组创建:

添加相关文件:

路径设置:

//当前工程目录路径
$PROJ_DIRS\
//当前工程目录下的 STM8s_StdPeriph_Driver\inc 文件夹
$PROJ_DIRS\STM8s_StdPeriph_Driver\inc

输出 hex 文件:

调试下载工具选择:

至此工程创建配置完毕。

标注的文件是官方提供的,可参考官网。

3.2 寄存器版

指示灯引脚 是PB5。

#include "IOSTM8S103F3.h"
int main( void )
{
int i,j;
PB_DDR|=0x20;
PB_CR1|=0x20;
PB_CR2|=0x00;
while (1)
{
PB_ODR^=0x20;
for(i=0;i<100;i++)
for(j=0;j<200;j++);
PB_ODR^=0x20;
for(i=0;i<100;i++)
for(j=0;j<200;j++);
PB_ODR |= 0x20;
for(i=0;i<100;i++)
for(j=0;j<200;j++);
PB_ODR &=0xdf;
for(i=0;i<100;i++)
for(j=0;j<200;j++);
}
return 0;
}

3.3 库函数版

标准库的下载地址:https://www.st.com.cn/content/st_com/zh/search.html#q=stm8-t=tools-page=4

STSW-STM8069 – STM8S/A标准外设库

指示灯引脚 是PB5

/**
******************************************************************************
* @file Project/main.c
* @author MCD Application Team
* @version V2.1.0
* @date 18-November-2011
* @brief Main program body
******************************************************************************
* @attention
*
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*
* <h2><center>(c) COPYRIGHT 2011 STMicroelectronics</center></h2>
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "stm8s.h"
#include "stm8s_gpio.h"
/* Private defines -----------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
#define LED_GPIO_PORT (GPIOB)
#define LED_GPIO_PINS (GPIO_PIN_5)
void Delay(uint16_t nCount)
{
/* Decrement nCount value */
while (nCount != 0)
{
nCount--;
}
}
void main(void)
{
GPIO_Init(LED_GPIO_PORT,LED_GPIO_PINS,GPIO_MODE_OUT_PP_HIGH_SLOW);
while (1)
{
GPIO_WriteReverse(LED_GPIO_PORT,LED_GPIO_PINS);
Delay(30000);
}
}
#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
/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/

3.4 编译生成可执行文件

四、下载

打开软件 STVP

配置

选择下载文件

下载

下载提示

将下载线拔掉,复位或者断电重启即可看到指示灯闪烁。

Tags:

最近发表
标签列表