历史上的今天
今天是:2025年02月06日(星期四)
2021年02月06日 | IAR for STM8学习笔记(一)建立工程
2021-02-06 来源:eefocus
前言
入门学习推荐思修电子龙顺宇的视频,讲得非常详细,相关视频网站如B站或者优酷上都有。已经有一定单片机基础的朋友建议自己找相关的资料研究。
STM8常用两种IDE,一个是意法公司自己提供的STVD软件,一个则是目前使用最广的IAR软件。两种IDE很相似,但也各有特点,个人学习掌握一种就好了。我这里主要学习IAR软件。
一、IAR for STM8软件工具的安装
这个网上有很多视频或者攻略,作为个人学习笔记,就不再多说了。
二、IAR建立一个工程
最简单的方式是,启动IAR软件,点击“Project”下拉菜单中“Cheat New Project...”,然后弹出一个窗口,用鼠标选择“C”(即C语言的工程,ASM为汇编),点击“OK”,然后弹出保存窗口,输入你要建立的工程名,如“LED”,点击保存,就建立一个简单的C语言版本的工程。


但很显然这样的工程在实际使用中是存在不少问题,特别是稍微大一点的程序,文件夹下的文件将会很乱。所以我个人还是喜欢按下面的方式建立一个IAR for STM8工程。(建立STM8工程的方式很多,每个人都有自己的习惯,以下仅为我个人习惯,仅供参考)
(1)先去ST官方下载STM8的标准固件库STSW-STM8069。
官网链接:
https://www.st.com/content/st_com/zh/products/embedded-software/mcu-mpu-embedded-software/stm8-embedded-software/stsw-stm8069.html
或者直接在官网搜索框输入该文件名字进行搜索。
标准库解压后:

(2)在桌面建立一个文件夹存放工程文件(这个看个人喜好,你也可以在其他路径下创建文件夹。我个人喜好在桌面创建工程文件,做完了再拖到其他盘的专门放工程的文件夹下面。不过建议文件夹存放路径里不要有中文字符,避免出一些意外情况。)
文件夹名称可命名为你项目的名称,如STM8_LED、STM8_demo之类,然后再在文件夹下建立几个分类文件夹,我个人习惯建立以下文件夹:
App ——用于存放用户程序,简单的应用这个文件夹一般空在哪里;
Readme ——用于存放说明文档,文件夹下可建立doc文件或txt文件,如readme.txt, 记录开发进度或技术说明;
Lib ——用于存放STM8标准固件库文件:从前面下载的STM8标准固件库里找到 以下路径:..STM8S_StdPeriph_LibLibrariesSTM8S_StdPeriph_Driver,然 后将文件夹下inc和src两个文件拷贝到我们建立好的文件夹Lib下
Driver ——用于存放自己编写的驱动文件;
User ——用于存放工程文件;从STM8标准固件库以下路径:
..STM8S_StdPeriph_LibProjectSTM8S_StdPeriph_Template,拷贝main.c、 stm8s_conf.h、stm8s_it.c、stm8s_it.h四个文件到我们建好的User文件夹。
注:做完第2步后,建议复制保存一个文件夹备份,作为以后创建工程用。
(3)打开IAR,新建一个工作空间(即workspace,这步有时候可以跳过,因为启动IAR时已经有一个workspace),然后按前面的步骤建立工程,即点击“Project”下拉菜单中“Cheat New Project...”,然后弹出一个窗口,用鼠标选择“Empty project”,点击“OK”,然后弹出保存窗口,输入你要建立的工程名,如“LED”,选择保存文件夹,将工程保存在我们第二步创建的文件夹的User文件夹下,如..STM8_LEDUser,然后点击保存。


然后会出现以下一个空的工程:

用鼠标选中该工程,点击右键出现右键菜单,依次点击“Add”、“Add Group...”创建分组如下:

注:如果项目计划里有用户应用程序,则还需添加“App”分组;如果有用到自己编写的驱动文件,则需要添加“Driver”分组;
接下来在“User”分组,用右键菜单里的“Add”“Add Files...”命令添加main.C文件;在“Readme”分组,采用同样的方式添加readme.txt文件;
这里注意一点,我们这里添加的main.C文件是ST公司提供的标准模板,里面含有<#include "stm8s.h">语句,所以我们在“Lib”分组下面需要添加stm8s.h文件(该文件路径为..STM8_LEDLibinc),否则编译将会有错误。

(4)做完以上步骤,工程还没有完全建好,接下来还需要对工程属性进行设置:右键点击工程“STM8_LED”,在弹出来的菜单里点击“Options...”,在弹出的窗口 然后点击“C/C++ Compiler”标签的“Preprocessor”标签,在“Additional include directories:(one per line)”框,添加头文件路径如下: 接下来打开“stm8s.h”文件,做一个小的修改,即把你使用芯片的对应的代码从注释状态解放出来,举例如下: 到这一步再编译程序,就能成功通过了。 (5)工程的进一步设置,首先是“C/C++ Compiler”标签的“Optimizations”标签页,“Level”框中勾选“Medium”,这是选择了中等的代码优化选项。 然后是“Output Converter”标签页,设置串口下载,设置如下: 最后是“Debug”标签的“Setup”标签页,在“Driver”栏选择“ST-LINK”。注:这项设置非常重要,我们最常用的就是ST-LINK下载和调试功能。 到此,STM8的IAR工程建立完毕。





史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 03:37 编辑 刚开始接触单片机的时候,用的是伟福的仿真器,程序调试也就是在伟福上进行,非常方便,后来慢慢发现KEIL的编译器要比伟福强大,也就喜欢上了KEIL,不知大家平时喜欢用什么编译器 … 查看全部问答> |
|
在USART的发送端有2个寄存器,一个是程序可以看到的USART_DR寄存器(下图中阴影部分的TDR),另一个是程序看不到的移位寄存器(下图中阴影部分Transmit Shift Register)。 对应USART数据发送有两个标志,一个是TXE=发送数据寄存器空,另一个是TC=发送 ...… 查看全部问答> |
|
大虾们,这样的配置怎么样? AMAX供应商给我的配置, CPU:intel Xeon 5504 硬盘:250G SATA 内存:12G 显卡:Tesla C1060 & Quadro FX380 最近在选型,大家帮忙参谋参谋,我导师让我买台做教学实验用。他们给的价格 ...… 查看全部问答> |
|
我通过修改project.bib把要自启动的程序编到操作系统映像文件,再修改shell.reg,基于sdk的程序可以实现开机自启动,而MFC的程序,自启动出现一个提示,而不能运行,想问一下为什么? 我个人认为可能是没有加载mfcce400.dll,mfcce400.dll我也编到 ...… 查看全部问答> |
|
我在编译mamece3的时候出现如下错误 LINK : fatal error LNK1104: cannot open file \'subsystem:windowsce,4.00\' 请问高手如何解决这个问题,谢谢… 查看全部问答> |
|
请大家推荐一些基本Windows Mobile驱动开发的好书,谢谢啦! 我作基本Windows Mobile的驱动程序已经有一年多了,但由于以前对嵌入式方面知之甚少,所以一年来几乎忙着去了解基本的知识点去了,未能对整个驱动开发有系统的认识。 所以想让大家给推荐一些你们认为好的书籍,中英都行,好让我能在这方面有更深的 ...… 查看全部问答> |
|
[十万火急]:多个相同的设备同时连接到不同的usb口,如何与指定usb接口上的设备进行通信。 请各位高手大虾多多指教啊: 有多个完全相同的设备同时连接到一台机器的不同usb口,比如序号为1、2、3、4,现在想对三号接口上的设备进行操作。不知道如何用createfile函数打开这个设备,因为我无法获得这个设备的设备路径。 & ...… 查看全部问答> |
|
今天看一天周立功写的书, 有两个概念不是很清楚. 1.ARM核 2.ARM芯片 3.LPC微控制器 什么arm7,arm9,,,,,,,,,, 还有LPC2200,LPC2214,,,,,,,,,,,等等! 有点混. 请大家指点一下. 看这种理论方面的书真的很痛苦.… 查看全部问答> |




