完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` 本帖最后由 patele 于 2016-3-17 23:07 编辑 Stm8s开发需要准备的材料: 电脑,开发板,stlink 1, 下载安装软件 1.1本教程开发和烧录软件使用stvd + sdvp,请自行下载安装sttoolset***.exe, 安装后有如下2个软件工具(ST Visual Develop用于编译和debug, ST Visual Programmer用于烧写) , 如果你使用的是其他开发工具,如iar,本教程的代码可作参考。 1.2 stm8编译器 stm8 32K cosmic 下载安装(记住安装路径, 我的是C:Program Files (x86)COSMICCXSTM8_32K),Cosmic 公司发布的一个免费版的Cosmic STM8编译器 ,也可直接用于stm8的软件开发,但是一般作为插件提供给stvd。 1.3 本教程debug烧录器使用stlink, 请自行安装 stlink 驱动,本人电脑win7 64bit 版,stlink 驱动是插上stlink后自动安装的,安装成功后在设备管理器中可以看到如下图中标出的一项。 2,创建stm8工程 本人的stm8的具体型号是stm8s103f3p6, 所以后面都默认建立stm8s103f3p6 的工程。 2.1 启动stvd 2.2 file --> New Workspace --> Creat workspace and project --> 确定 2.3 在弹出的对话框中填写workspace名和workspace 存放路径 ---> ok 2.4 在弹出的对话框中填写 project名和路径,然后选择编译工具链,本教程使用 stm8 cosmic,然后填写工具链的路径,即上述1.2提示记住的安装路径,本人填写 C:Program Files (x86)COSMICCXSTM8_32K ---> ok 2.5 在弹出的对话框中的 filter 中输入自己的芯片型号,选择对应芯片,点击 Seclet, 本人使用 stm8s103f3p6 --> ok 2.6 工程已经基本创建完成,如下图(红线标注的分别是workspace 和 project) 双击 source file 展开可以看到在该目录下有2个重要文件main.c 和 stm8_interrupt_vector.c Main.c 中的函数 main() 是应用程序入口, stm8_interrupt_vector.c 中主要是中断向量表 2.7 背景:stvd自动生成的main.c 和 stm8_interrupt_vector.c 更适合一些人所说的寄存器开发,寄存器开发相对库函数开发具有代码更紧凑占用flash少,cpu效率高等优势,而库函数开发的优势则是减轻开发工作,缩短开发周期,而且用库函数开发好程序之后,是可以很方便的修改成寄存器版本的,对于目前的市场来说,缩短开发周期意味着产品更快的推向市场,既可以缩减成本,也可以抢占市场,所以使用库函数开发是最佳选择。 2.7.1 为了方便使用库函数,本人将从ST官方获取的 main.c 和 stm8_interrupt_vector.c 替换掉本工程源码中的对应文件,直接用新的 mian.c 和 stm8_interrupt_vector.c 覆盖原来的即可。 2.7.2 将获取得到 stm8s_conf.h、 stm8s_it.c 和 stm8s_it.h 拷贝到工程源码中。 2.7.3 将获取到的库STM8S_StdPeriph_Driver添加到工程源码中。 进入 STM8S_StdPeriph_Driver 可以看到2个重要文件夹 inc 和src, 其中 inc 中都是***.h头文件,除文件stm8s.h之外的文件都是包含库函数的声明,如 stm8s_adc1.h 是用于 adc1 的所有库函数声明,而stm8s则定义了一些重要的编译信息以及将寄存器地址映射成符号等; Src中则是库函数的实现,每一个xxx.c 文件在inc中都有一个对应名的xxx.h 文件。 2.7.4 在stvd工程新建库函数目录 STM8S_StdPeriph_Driver,用于添加库文件到工程中 在 stvd 的工程中选中工程,然后右键 --> New Folder 在弹出的对话框中输入 STM8S_StdPeriph_Driver -- > ok 2.7.5 编译工程 直接按快捷键 F7 或者点击工具栏图标
(中间红圈的) 或者点击菜单栏 Build --> Build. 即可编译工程。 提示错误: #error opstm8 main.c:24 can’t open stm8s.h 提示很明确:无法打开stm8s.h, 文件stm8s.h 就是前面介绍的库中的inc 中的文件,显然是因为没有添加到stvd工程中。 解决办法:选中 include files --> 右键 --> add files to folder , 找到stm8s.h,添加到工程中, 再编译,出现很多如下类型错误: #error ****************** "Please select first the target STM8S/A device used in your application (in stm8s.h file)" 提示需要在stm8s.h中先选中芯片型号 解决办法:打开stm8s.h, 找到 (因为本人使用的是stm8s103f3p6) /* #define STM8S103*/ /*!< STM8S Low density devices */ 改成 #define STM8S103 /*!< STM8S Low density devices */ 再编译,出现很多如下类型错误: #error clnk Debugcreatproject.lkf:1 symbol *********************** 原因是在 stm8_interrupt_vector.c 定义的中断向量表中引用了很多函数指针,但是编译器找不到该函数。将上述拷贝的 stm8s_it.c 添加到 Source files 中,将 stm8s_it.h 和 stm8s_conf.h 添加到 include files 中。 再编译,通过。 0 error(s), 0 warning(s) 2.7.6 保存 File --> Save Workspace ` |
|
相关推荐
|
|
|
|
|
|
|
|
楼主你好,我是刚入门的小菜鸟,浏览了一下你写的这些例子,想跟上面的教程学习,但是不知道用什么开发板或芯片合适,我这有一个stm8s105的芯片,不知道能不能用,等待回复
|
|
|
|
感 谢 楼 主!
|
|
|
|
|
|
在网上看了下,近两年出现了不少stm8s的资料。
看了下,挺多资料都有明显参考甚至直接摘录我的教程的痕迹,但是没有一个提到参考我的教程,挺失望的。 等我的新教程编写差不多准备放出来的时候,我准备自己去覆盖几个大的论坛社区。 |
|
|
|
|
|
2255 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2071 浏览 3 评论
4687 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2215 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2757 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 06:20 , Processed in 0.923209 second(s), Total 65, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号