历史上的今天

今天是:2024年10月21日(星期一)

正在发生

2021年10月21日 | stvd+stm8l051F3(1):stvd一步一步建立stm8l工程项目

发布者:Qingfang 来源: eefocus关键字:stvd  stm8l051F3  工程项目 手机看文章 扫描二维码
随时随地手机看文章

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内容改成如下代码,编译项目,编译成功

  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工程项目建立过程与此类似。


关键字:stvd  stm8l051F3  工程项目 引用地址:stvd+stm8l051F3(1):stvd一步一步建立stm8l工程项目

上一篇:stvd+stm8l051F3: segment .bss size overflow (293)
下一篇:stvd+stm8s: The Flash Memory Read-out protection option must be disabled

推荐阅读

简单地说:想在mdk 中用printf,需要同时重定义fputc函数和避免使用semihosting(半主机模式), 标准库函数的默认输出设备是显示器,要实现在串口或LCD输出,必须重定义标准库函数里调用的与输出设备相关的函数. 例如:printf输出到串口,需要将fputc里面的输出指向串口(重定向),方法如下: #ifdef __GNUC__ /* With GCC/RAISONANCE, small printf (o...
异常中断返回的几种情况:重要基础知识:R15(PC)总是指向“正在取指”的指令,而不是指向“正在执行”的指令或正在“译码”的指令。一般来说,人们习惯性约定将“正在执行的指令作为参考点”,称之为当前第一条指令,因此 PC总是指向第三条指令。当 ARM 状态时,每条指令为 4 字节长,所以 PC 始终指向该指令地址加 8 字节的地址,即:PC 值=当前程序执...
知名手机评测机构DXOMARK在昨天更新了第4版相机测评标准,为此DXOMARK也谈到了该标准的具体情况。DXOMARK称最新的相机测试基准第4版有两项重大更新:首先,添加了摄像头预览图像质量测试,因为预览可以给消费者图像质量的第一印象,对图像结果也有很大的影响;其次是所谓的“可信度”评鉴。可信度评鉴的设计宗旨在于使DXOMARK的摄像头测试基准更加详尽、更...
Microchip发布适用于dsPIC®、PIC18®和AVR®单片机的全新ISO 26262功能安全包,简化ASIL B和ASIL C安全应用设计Microchip已获认证的功能安全解决方案加速汽车安全应用的开发和认证为给汽车运行和最终用户提供可靠保障,安全一直是汽车应用中的头等大事。Microchip Technology Inc. (美国微芯科技公司)现可提供全新认证的功能安全包,让工程师能够...

史海拾趣

问答坊 | AI 解惑

塑封料\包封料提高博客流量22天规(严禁转载)

[^]塑封料\包封料提高博客流量22天规(严禁转载) 刘志:13611616628   中国塑封料网   (http://www.cncun.cn) 自己的博客要满周岁啦(到2007-01-16),也为了纪念自己的博客突破50万大关,对自己开博的经验做个总结,现总结自己提 ...…

查看全部问答∨

【博客帮助帖】如何找回密码

1)如果您的密码不慎丢失,可以点击“找回密码”进入的便是博客的找回密码系统。 2)将您的用户名、Email、填写好点提交,系统将您的密码返还。(也可参照论坛帮助帖密码丢了怎么办) …

查看全部问答∨

单片机 arm的外部晶振频率选择的依据是什么 谢谢

单片机 arm的外部晶振频率选择的依据是什么,只是单单就根据速度和稳定性选择就可以了吗?具体点 谢谢 …

查看全部问答∨

jlink连上2440说找不到设备

网上买来的JLINK V8仿真器和mini2440连好了,去SEGGER的网站下载了驱动,装好,打开JLINK.exe显示下面这图,是我哪里没弄好还是产品问题? 这是JLINK和2440连接用的转接板,上面没有标识正反,我是看JLINK上面的灯是红的就反过来插,到绿为止。 ...…

查看全部问答∨

急求:PDA系统数据库同步问题

开发工具:Pocket Builder2.0 远程数据库 ASA 中心数据库 Sql Server 问题描述:     在本机PC上运行程序,可以与Mobilink服务器连接,但将程序放到PDA里,则提示"不能连接远程数据库"     PDA通过无线网络连接 请高手 ...…

查看全部问答∨

StellarisWare 例程简介

StellarisWare 例程简介   AES Pre-expanded Key(aes_expanded_key)        此例程演示了如何使用预扩展密钥加密明文并把它解密成原来的信息。使用预扩展密钥避免了在运行的时候处理扩展。采用的是AES中的CB ...…

查看全部问答∨

CN0065_【10款典型实验室电路推荐】之二

【10款典型实验室电路推荐】之二:利用单芯片电压和电流输出DAC AD5422及数字隔离器ADuM1401构建16位全隔离输出模块。该电路提供一种完整的工业控制输出模块解决方案,适合过程控制可编程逻辑控制器和分布式控制系统模块,同时还含有标准外部保护功 ...…

查看全部问答∨

多路DAC有什么推荐

在做以stm32为核心的一个项目,需要一个多路的dac,有什么推荐的,主流一点的,好用一点的…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved