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工程项目建立过程与此类似。
上一篇:stm8s003 8K空间不够用,出现报错,修改stvd参数进行最优化
下一篇:stm8s003 8K空间不够用,出现报错,修改stvd参数进行最优化
推荐阅读最新更新时间:2024-11-05 14:37
设计资源 培训 开发板 精华推荐
- 使用 Nuvoton Technology Corporation 的 ISD17150 的参考设计
- LT3755EUD 50W 白色汽车 LED 前照灯驱动器的典型应用电路
- XBOX扩展存储M.2转CFexpress
- LT6656BCDC-1.25、1.25V 扩展电源范围电压基准的典型应用
- 基于STSPIN32F0602的三相逆变器
- TWR-56F8400-KIT,用于 DSC 的开发塔式系统模块 MC56F84789 MCU 用于电机和电源控制塔式系统模块,用于节能创新
- 51单片机
- RGB_800X480
- 用于荧光灯镇流器的 1 灯 54W 荧光灯驱动器
- LT1375HVCS8 1.5A、500kHz 降压型开关稳压器的典型应用电路