网站首页 > 技术文章 正文
目录
- 一、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 循环队列原理及在单片机串口通讯中的应用(二)
- 08-06中等生如何学好初二数学函数篇
- 08-06C#构造函数
- 08-06初中数学:一次函数学习要点和方法
- 08-06仓颉编程语言基础-数据类型—结构类型
- 08-06C++实现委托机制
- 08-06初中VS高中三角函数:从"固定镜头"到"360°全景",数学视野升级
- 08-06一文讲透PLC中Static和Temp变量的区别
- 08-06类三剑客:一招修改所有对象!类方法与静态方法的核心区别!
- 1531℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 682℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 536℃MySQL service启动脚本浅析(r12笔记第59天)
- 501℃启用MySQL查询缓存(mysql8.0查询缓存)
- 500℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 486℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 469℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 467℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- windowsscripthost (69)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (70)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)