一、前述
STVD是意法半导体推出的,可以支持STM8和STM32
而IAR不尽如此,还支持51,MSP430等芯片
软件开发环境:编写程序,调试软件功能,下载固件到单片机中
硬件开发环境:连接外围电路,驱动功能外设,实现电气功能
最终构成一个以STM8系列单片机作为控制核心的应用系统。
MCS-51 一般的开发环境是 IAR 和 Keil
STM8 一般的开发环境是 IAR 和 STVD
但是STVD里面只有汇编的解析器,而没有C语言的解析器,所以需要额外去安装一个“C编译器”—Cosmic Tool。Cosmic公司推出了一个适用于STM8系列的单片机的C编译器。32KB以下的代码可以免费使用。
ST-Link设备有时需要升级,也就是更新固件库,同时升级的同时不能随便的拔出。
二、STVD的使用
- 先在桌面上新建一个Clichong的文件夹。然后打开STVD软件,新建立一个新名字为Clichong的工作区。
- 选择好工作区的保存路径
- 设置项目的名称和保存的位置,并且选着好Cosmic编译工具,否则无法使用c语言进行编写。并且选择好编译器的下载路径。
- 选择好使用的芯片型号
- 此时的main.c文件是没有头文件的,也就是我们需要添加库文件。右键Include Files,选择add files to fonder弹出如下界面:
选择所使用芯片的类型,此时我头文件的路径为:E:\stm8-STtool\include,选择STM8S208MB
- 添加好头文件,并在main.c上添加#include “STM8S208M.h”
- 编写程序测试,并且设置target settings中的调试工具为ST-Link
- 编译,调试,运行
以上便是STVD工程的建立使用
- 补充:选项字节的配置Debug instrument—> MCU confightion 中进行设置
测试点灯代码:
#include "STM8S208M.h" #define u8 uint8_t #define u16 uint16_t #define u32 uint32_t typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned long uint32_t; void delay(u16 Count); void GPIO_play(void); int main( void ) { PI_DDR|=0x0F;//配置PI端口低四位为输出模式 PI_CR1|=0x0F;//配置PI端口低四位为推挽输出模式 PI_CR2&=0xF0;//配置PI端口低四位低速率输出 GPIO_play(); } void delay(u16 Count) { u8 i,j; while (Count--)//Count形参控制延时次数 { for(i=0;i<50;i++) for(j=0;j<20;j++); } } void GPIO_play(void) { while(1){ PI_ODR|=0x0F; delay(50); PI_ODR&=0xF0; delay(50); } }
三、STVP的使用
1、STVP的作用:
- STVP软件可以将固件程序下载到单片机的FLASH存储器中。
- 可以修改STM8系列单片机EEPROM存储器中的内容。
- 可以修改STM8系列单片机的选项字节options bios参数。
2、STVP的使用
以下是几个重要按钮的介绍:
- 第一个图标的作用是读出当前页的程序
- 第二个图标是作业是写入一个hex文档数据
- 第三个图标是校验一个写入的数据的正确性
- 第六个图标是读取指定地址段的程序
- 第七个图标是写入指定地址段的程序
- 第八个图标是校验指定地址段的程序
- 第九个图标是读出三页全部的内容
- 第十个图标是写入三页全部的内容
- 第十一图标是校验三个页的全部的内容
当是当测试的时候,出现了一堆问题,如下所示:
原因是没有进行芯片等相关配置。
- 选着configure—>configure STVP
- 选着好硬件的设备类型(ST-Link),端口类型(usb),Programming的模式(SWIM),最后选着好芯片类型(STM8S208MB)
- 设置成功
- 进行简单的测试。点击read current tab按钮,可以正常显示当前页面的内容
- 向选项字节写入55,开启读保护
- 想再度查看的时候会被阻止
- 而再度的关闭读保护想查看当前页面的程序的时候,会发现当前页面没有任何的程序,也就是程序被删除了,单片机复位也不会再执行。
结论:
可以好好的利用选项字节,当开启读保护写入55时再度的关闭就会删除程序。
四、串口烧录程序
串口烧写的程序可以允许的格式有:.bin文件,.hex文件,.s19文件
- 打开Demonstrator GUI工具进行串口的程序下载
- 打开设备管理器查看端口号,此时我的端口是com7
- 设置参数。线比较长的可以设置小点的波特率;而线短的可以设置教长一点。
- 对单片机按复位按键的同时,点击next按钮,即可进入如下界面
- 选着单片机字节的容量大小,STM8S208MB是128K的
- 此处使用IAR工具编译代码,注意对工程选项设置为导出hex文件
- 编译,然后点击make,即可看见Debug中的Exe文件中,有一个led.hex文件,此为一个闪烁灯的程序。同样的方法,我们再make一个流水灯的.bin二进制程序。
只需要在第六步的时候Intel extended选择为binary即可,如下所示:
- 打开STVP软件工具,开启选项字节的选项位BOOTLOADER ENABLED状态,并进行烧写。(需要用ST-Link才可以进行写入)
- 分别尝试串口烧写.hex文件和.bin文件
- 烧写程序成功,复位进行验证,确实是闪烁灯成功。
当然,ST-Link比串口烧录简单多了。