Chinaunix首页 | 论坛 | 博客
  • 博客访问: 565444
  • 博文数量: 127
  • 博客积分: 1169
  • 博客等级: 少尉
  • 技术积分: 1298
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-16 14:29
个人简介

空白

文章分类

全部博文(127)

分类: 嵌入式

2017-03-01 18:08:43

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.hSTM8L15x_StdPeriph_Driver下的inc文件夹中添加到stm8l_led的项目中


2.3、双击打开stm8l15x.h,将所用的单片机型号的注释符号去掉

编译项目提示错误:
Running Linker
clnk -m Debug\stm8l_led.map -l"C:\Program Files (x86)\COSMIC\CXSTM8\Lib"  -o Debug\stm8l_led.sm8 Debug\stm8l_led.lkf 
#error clnk Debug\stm8l_led.lkf:68 Debug\stm8_interrupt_vector.o: symbol f_NonHandledInterrupt multiply defined (Debug\stm8l15x_it.o)
 The command: "clnk -m Debug\stm8l_led.map -l"C:\Program Files (x86)\COSMIC\CXSTM8\Lib"  -o Debug\stm8l_led.sm8 Debug\stm8l_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_Driver\src目录下stm8l15x_gpio.c


2.6、双击打开stm8l15x_conf.h文件,将#define USE_FULL_ASSERT注释掉

2.7、将main.c内容改成如下代码,编译项目,编译成功
  1. //STM8L051/151等系列共用库函数
  2. #include "stm8l15x.h"

  3. //定义LED端口
  4. #define LED_PORT GPIOD
  5. #define LED_PINS GPIO_Pin_0

  6. /*******************************************************************************
  7. ****入口参数:无
  8. ****出口参数:无
  9. ****函数备注:不精确延时函数
  10. *******************************************************************************/
  11. void Delay(__IO uint16_t nCount)
  12. {
  13.     /* Decrement nCount value */
  14.     while (nCount != 0)
  15.     {
  16.         nCount--;
  17.     }
  18. }
  19. /*******************************************************************************
  20. ****函数说明:主函数
  21. ****入口参数:
  22. ****出口参数:
  23. ****函数备注:LED以一定频率闪烁
  24. ********************************************************************************/
  25. void main(void)
  26. {
  27.   GPIO_Init(LED_PORT, LED_PINS, GPIO_Mode_Out_PP_Low_Slow);//初始化LED端口
  28.   while (1)
  29.   {
  30.     GPIO_ToggleBits(LED_PORT,LED_PINS);//翻转LED端口
  31.     Delay(50000);
  32.   }
  33. }

到这里一个基本的STM8l工程项目就建立完成。若需要使用到单片机的其它模块功能,按添加stm8l15x_gpio.c的方法添加,比如要用到spi,则添加stm8l15x_spi.c到项目中即可。
另外stm8s工程项目建立过程与此类似。
阅读(9591) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~