历史上的今天
今天是:2024年10月21日(星期一)
2021年10月21日 | stvd+stm8l051F3(1):stvd一步一步建立stm8l工程项目
2021-10-21 来源:eefocus
stvd版本信息: ST Visual Develop Version 4.3.9
单片机型号: stm8l051F3
stvd建立stm8l工程项目步骤:
1、打开stvd,File->New Workspace...
选择Create workspace and project
Workspace filename中输入工程名,Workspace location输入工程存放路径
Project filename输入项目名称;Project location输入项目存放路径,Toolchain选择所用编译器,这里选择STM8 Cosmic;
Toolchain root会根据Toolchain的选择自动获取编译器所在路径
选中IC型号,双击,再点OK
点击OK,初步工程和项目已经建立,编译通过。
stm8l_led项目Source Files添加了main.c和stm8_interrupt_vector.c两个文件
led目录自动添加了main.c和stm8_interrupt_vector.c文件
2、添加STM8L15x_StdPeriph_Driver标准库
2.1、将stm8l15x_conf.h、stm8l15x_it.h、stm8l15x_it.c三个文件拷贝到led目录下;
2.2、将STM8L15x_StdPeriph_Driver文件夹拷贝到led目录下;
2.2、将stm8l15x_conf.h、stm8l15x_it.h、stm8l15x_it.c添加到stm8l_led的项目中,然后将stm8l15x.h从STM8L15x_StdPeriph_Driver下的inc文件夹中添加到stm8l_led的项目中

2.3、双击打开stm8l15x.h,将所用的单片机型号的注释符号去掉
编译项目提示错误:
Running Linker
clnk -m Debugstm8l_led.map -l"C:Program Files (x86)COSMICCXSTM8Lib" -o Debugstm8l_led.sm8 Debugstm8l_led.lkf
#error clnk Debugstm8l_led.lkf:68 Debugstm8_interrupt_vector.o: symbol f_NonHandledInterrupt multiply defined (Debugstm8l15x_it.o)
The command: "clnk -m Debugstm8l_led.map -l"C:Program Files (x86)COSMICCXSTM8Lib" -o Debugstm8l_led.sm8 Debugstm8l_led.lkf " has failed, the returned value is: 1
exit code=1.
将stm8_interrupt_vector.c文件中@far @interrupt void NonHandledInterrupt (void)函数注释,因为重复定义了,再#include "stm8l15x_it.h"头文件,然后编译通过
2.4、在stvd软件Workspace框中选中stm8l_led项目,右键弹出菜单选择New Folder...,输入新建文件夹名STM8L15x_StdPeriph_Driver
2.5、在stvd软件Workspace框stm8l_led项目中STM8L15x_StdPeriph_Driver右键选择Add Files to Folder...,选择STM8L15x_StdPeriph_Driversrc目录下stm8l15x_gpio.c

2.6、双击打开stm8l15x_conf.h文件,将#define USE_FULL_ASSERT注释掉
2.7、将main.c内容改成如下代码,编译项目,编译成功
//STM8L051/151等系列共用库函数
#include "stm8l15x.h"
//定义LED端口
#define LED_PORT GPIOD
#define LED_PINS GPIO_Pin_0
/*******************************************************************************
****入口参数:无
****出口参数:无
****函数备注:不精确延时函数
*******************************************************************************/
void Delay(__IO uint16_t nCount)
{
/* Decrement nCount value */
while (nCount != 0)
{
nCount--;
}
}
/*******************************************************************************
****函数说明:主函数
****入口参数:无
****出口参数:无
****函数备注:LED以一定频率闪烁
********************************************************************************/
void main(void)
{
GPIO_Init(LED_PORT, LED_PINS, GPIO_Mode_Out_PP_Low_Slow);//初始化LED端口
while (1)
{
GPIO_ToggleBits(LED_PORT,LED_PINS);//翻转LED端口
Delay(50000);
}
}

到这里一个基本的STM8l工程项目就建立完成。若需要使用到单片机的其它模块功能,按添加stm8l15x_gpio.c的方法添加,比如要用到spi,则添加stm8l15x_spi.c到项目中即可。
另外stm8s工程项目建立过程与此类似。
上一篇:stvd+stm8l051F3: segment .bss size overflow (293)
下一篇:stvd+stm8s: The Flash Memory Read-out protection option must be disabled
史海拾趣
|
大一统Matter我们作为见证者必须跟进一下: 要想用上Matter是不是到时候还要换一波设备呀~~ matter安全与隐私 Matter Network Transport [Chinese] - Connectivity Standards Alliance Matter 发布会精彩片段 matter被视为智能家居 ...… 查看全部问答> |
|
看别人在光耦的1脚和2脚并了个小电容,这是抗干扰用的吗?消抖吗? 假如光耦的1脚串1个2K电阻接24V,2脚的负极信号来自100米远,会有干扰吗?1-2脚之间接个电阻好,还是电容好? … 查看全部问答> |
|
活动最后一天下的单, 17号已经收到其中2件, 还有一件是国外发过来, 昨天也收到了, e络盟发货速度那是没的说. 来看看收到的产品吧. 不得不说, e络盟的包装非常结实, 都是用的比较厚实的硬纸板箱, 没有任何变形. ...… 查看全部问答> |
|
【MPS商城钜惠体验季】开箱报告:EVM54304-MN-01A和EVCS180X-S-Y-00A 这次趁着活动,根据实际需要,选了两款MPS的电源板子,分别是: EVM54304-MN-01A:MPM54304 是一款集成 I2C 接口的四通道输出电源模块,带 I2C 和 MTP 的 4V 至 16V 输入、四路 3A、3A、2A、2A 输出 EVCS180X-S-Y-00A:MCS180x 为线性霍尔 ...… 查看全部问答> |
|
本帖最后由 jinyi7016 于 2022-11-25 14:04 编辑 一、起因 在ubuntu上搭建好开发环境后,编译了官方的例程,但开发板的硬件与官方开发板的差异还是很大的,虽然编译了例程,但几乎没有可以运行运行的例程,所以,就重新编译了官方提供的例程 ...… 查看全部问答> |
|
周一下单, 今天周五就收到了, MPS发货速度还是挺快的. 包装非常结实, 外面一个大盒子,里面每件货都再装了一个小盒子. 这是一颗DCDC转换芯片: & ...… 查看全部问答> |
|
疑问:CMOS传输门内部是一个P沟道MOS和N沟道MOS对接,当C高电平时下端的N管是导通的,当C为低电平的时候上端PMOS管基极为低电平不也是导通?大佬们我是哪里理解有问题? … 查看全部问答> |
|
图1:工程中add group 命名为rt thread 图2:在工程的libraries 中新建 rt-thread 文件夹 图4:rt-thread 文件夹中的文件 图5:添加头文件路径 $PROJ_DIR$\\..\\..\\libraries $PROJ ...… 查看全部问答> |
|
这次活动,太划算了,正好最近在做一个家庭环境监测板自己玩,就选了mEZS91202A这个现成的板子准备做供电用 收到时的包装 发货清单以及选型手册 板子单独用纸箱包装 板子实物 … 查看全部问答> |




