STM8 IAR平台使用小记 三
0赞板子已经发出去制板了,还没回来,当然了,我可以在DEMO板子上玩玩这个单片机啦,也可以利用DEMO板先把基础的程序写好,然后在集成在一起就好了,其实呢,我的板子还没有DEMO板这个的功能强大,因为接口少了。时间紧迫,废话少说,开始第一个程序。
对于任何一个MCU,最先开始的一定是GPIO和时钟系统。那我今天就来说说这两个吧。
首先是打开IAR,基本的操作我就不说了,用过几个平台的话,基本上都差不多。首先是建立工作间,建立工程,这些就不说了。
首先找到STM8S105的头文件,打开安装目录,我的是在
C:\Program Files\IAR Systems\Embedded Workbench 6.0 Evaluation_4\stm8\inc
名字是 #include <iostm8s105c4.h>
另外定义两个数据类型unsigned char 和unsigned int.其实我的程序写的相当的不标准,因为在大学的时候,自学单片机的时候是按照郭天祥老师的视频教程学习的,可以说郭老师是我单片机入门的领路人,但是跟着郭老师学习的代码风格让我吃了大亏,一直没有形成良好的代码习惯,变量定义,什么a,aa,wei,duan,唉这个,我就不说了,只想说初学单片机的人,一定要注意良好的风格习惯,否则,江山易改禀性难移呀。就说这个简单的数据定义吧,
#define uchar unsigned char
#define uint unsigned int
这是我一开始就是这样用宏定义的。。。。。。然而比较好的做法是下面的。
typedef unsigned char u8;
typedef unsigned int u16;
至于怎么好,我就不说了,读者细细体味吧,
我反正被批了很多次了。
STM8的时钟系统在8位机里面算是比较好的,有三个选择,内部16M,外部晶体,内部低频。值得一提的是内部16M的精度和漂移都是比较好的,我打算评估一下IIC的通信速率,如果可以的话,就可以省掉外部的晶振了。系统复位默认是16M的内部振荡器。但是是8分频的,所以,如果想要高的话,也很简单。
Void Clk_init()
{
CLK_CKDIVR=0x00; //不分频16M
}
