概述
因项目需要增加CAN BUS,几经比较,选择了性价比比较高的STM8AF系列单片机。
STM8的单片机没接触过,研究了一下,如果使用C语言编程,发现和其它单片机使用上差别不大。
以下是这两天研习过程中得到的一些经验总结(主要是软件编程部分)。
一、需要准备的资料(可以从ST公司网站下载):
1)STM8系列参考手册RM0016《STM8S Series and STM8AF Series 8-bit microcontrollers》。
2)测试采用的芯片STM8AF5288的数据手册(Product Specifications ) 《DS5697》。
二、准备下载仿真工具及试验电路板
上某宝购买了ST公司生产的STM8A Discovery Kit,本身带SWIM仿真(已经将ST-LINK部分直接增加到电路中),可以直接连接电脑USB口进行仿真或下载程序。(为方便调试自己的电路板,需要另外购买ST-LINK/V2仿真器。)
三、准备工具软件
如果想用ST Visual Develop可以去ST公司网站下载安装相应软件,使用ST的编译调试平台,要使用C语言编译器时,因ST公司本身不提供C编译器,需要下载安装COSMIC编译器。具体可到网上搜索安装。
这里用的是IAR编译,可搜索“IAR for STM8”下载安装。
四、编写一个点亮LED的小程序
使用某款单片机,首先要了解其内部结构,常用单片机内部包含CPU,内存RAM,程序存储器FLASH,各种功能单元,不同单片机因实际需求有不同的外接接口,比如输入输出管脚、AD转换输入接口、RS232接口、I2C接口、SPI接口、CANBUS等等。
下面开始编写一段小程序,在STM8A Discovery Kit上进行LED点亮测试。
运行IAR FOR STM8 (安装后执行程序名为IarIdePm.exe),点击“File->New Workspace" 生成新工作空间,然后点击”Project->Creat New Project…" ,选择Project templates为C,指定项目保存位置, 创建一个新项目。新项目中只包含一个main.c函数。
鼠标右键点击图示的 testprj002-Debug,选择"Options…",打开项目选项功能,根据实际需要进行设置:
这里选择"General Options->Device"为STM8AF5288,“Debuger->Driver"为ST-LINK。(可以选择Output Converter生成HEX文件,可以直接用ST Visual Programmer将此HEX文件写入芯片脱机运行。)
图中显示当前项目的配置调试模式DEBUG,程序调试OK后,可以选择为Release发布模式。方法是点击"Project->Edit Configuration…”,选择"Release",选择release后,还需要根据实际要求选择"Options…",打开项目选项功能进行设置。
项目设置好后,点击"Project->Rebuild all",项目编译连接完成,没有任何错误。查看生成的map文件,会发现,IAR已经根据选择的ST芯片,生成调试文件.out以及可执行文件.hex。
在main.c文件中添加代码,点亮LED,
根据电路图,要点亮LED,只需要将相应的管脚电平设为1即可,=0时则LED灭。
程序使用两种地址指针方式来传送数据,第一种使用的数据结构方式是ST提供的库中使用的模式,控制点亮或熄灭PA3脚驱动的LED,第二种是直接地址赋值模式,控制点亮或熄灭PC3脚驱动的LED,两者功能是一样的。有时候自己编写寄存器头文件比较好,虽然需要花点时间编写,但之后编程时思路更加直观,也不需要额外花时间去理解不同公司的库定义。
这里需要提醒一下的是寄存器地址在哪里找,请参考单片机的数据手册(Product Specifications )。我这里使用的是ST8AF5288,在ST的DS5697文件《Datasheet - production data》中的Register map目录下可以找到:
程序编写完成,保存,Rebuild all,设置好调试断点,点击”Download and Debug", 就可以进行调试和观察LED的亮灭情况了。
至此,一个简单的点亮LED的程序已完成,接下来就可以根据实际电路进行各种运算和控制编程了。当然,最好是将main之前的定义另外放到头文件.h中,增加宏定义以及注释,使程序结构清晰,方便阅读。
花一点时间写了这篇STM8编程入门,希望对初学者有帮助。
此文为原创,可以转发,转发时请注明出处。谢谢!(WRITEN BY XuHongCheng GY902 USST, 2021/1/28)
最后
以上就是精明战斗机为你收集整理的STM8单片机之“HELLO WORLD“——点亮LED的全部内容,希望文章能够帮你解决STM8单片机之“HELLO WORLD“——点亮LED所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复