网站首页 > 技术文章 正文
目录
- 一、STM8S系列单片机的编译环境
- 二、STM8S系列单片机的下载方式
- 三、基于IAR的STM8工程示例
- 3.1 工程创建
- 3.2 寄存器版
- 3.3 库函数版
- 3.4 编译生成可执行文件
- 四、下载
一、STM8S系列单片机的编译环境
STM8系列的单片机的编译软件常用的有两种:一个是STVD,一个是IAR。51单片机、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
配置
选择下载文件
下载
下载提示
将下载线拔掉,复位或者断电重启即可看到指示灯闪烁。
猜你喜欢
- 2025-08-06 杰x分享(92):51单片机基础(十四)
- 2025-05-23 STM32学习笔记-CubeMX使用
- 2025-05-23 嵌入式开发丨51、STM32、Linux点灯的区别
- 2025-05-23 【基础】STM32F103C8T6制作舵机测试仪详细图文教程
- 2025-05-23 利用Proteus仿真STM32实现DHT11温湿度检测
- 2025-05-23 《GD32开发实战指南》第13章 DAC
- 2025-05-23 51-FORTH(1): 8051计算机诞生记
- 2025-05-23 _attribute__((weak))关键字如何使用?
- 2025-05-23 终极调试利器,各种Link通吃
- 2025-05-23 循环队列原理及在单片机串口通讯中的应用(二)
- 10-02基于深度学习的铸件缺陷检测_如何控制和检测铸件缺陷?有缺陷铸件如何处置?
- 10-02Linux Mint 22.1 Cinnamon Edition 搭建深度学习环境
- 10-02AWD-LSTM语言模型是如何实现的_lstm语言模型
- 10-02NVIDIA Jetson Nano 2GB 系列文章(53):TAO模型训练工具简介
- 10-02使用ONNX和Torchscript加快推理速度的测试
- 10-02tensorflow GPU环境安装踩坑日记_tensorflow配置gpu环境
- 10-02Keye-VL-1.5-8B 快手 Keye-VL— 腾讯云两卡 32GB GPU保姆级部署指南
- 10-02Gateway_gateways
- 最近发表
-
- 基于深度学习的铸件缺陷检测_如何控制和检测铸件缺陷?有缺陷铸件如何处置?
- Linux Mint 22.1 Cinnamon Edition 搭建深度学习环境
- AWD-LSTM语言模型是如何实现的_lstm语言模型
- NVIDIA Jetson Nano 2GB 系列文章(53):TAO模型训练工具简介
- 使用ONNX和Torchscript加快推理速度的测试
- tensorflow GPU环境安装踩坑日记_tensorflow配置gpu环境
- Keye-VL-1.5-8B 快手 Keye-VL— 腾讯云两卡 32GB GPU保姆级部署指南
- Gateway_gateways
- Coze开源本地部署教程_开源canopen
- 扣子开源本地部署教程 丨Coze智能体小白喂饭级指南
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)