由于上面的main.c没什么实质的程序运行,所以下面我们要运行一个ADC电压采集,并把采集值赋给定时器,实现定时器PWM的变化输出,驱动LED亮度发生变化的程序,这个程序我是从一个论坛上下载的,应该也是这个套件板的光盘里的内容。
我先把这个程序工程里的3个文件(main.c 、 tm8_interrupt_vector.c 、 STM8S207R.h)传上来,其实这个工程也是可以直接运行的,但为了让我们上面辛苦建立的工程发挥下作用,所以还是继续沿用上面的工程,然后把我上传的3个文件名里的main.c 、 tm8_interrupt_vector.c 里的内容复制到我们刚才建立好的工程对应的文件里;并把STM8S207R.h这个文件复制到我们工程目录下,并添加到工程里,这个头文件是必须的。
大家先下载这3个文件:
点击此处下载 :LED.rar
然后编译程序,成功!
嘿嘿,下面要把实验板连接到电脑调试了。
不过在连机调试前,要先设置下Debug instrument的Target Settings…,实验板配套的是ST LINK,所以就选ST LINK就可以了。
还有一个重要的,差点忘了,那就是STM8S小板需要接独立的外部电源,DC9~12V,插座是内正外负,别搞错正负极了。
接上电源,板上的D4电源指示灯应该亮起,用USB连接线把ST LINK连接到电脑的USB。
然后点击DEBUG按钮,进入仿真调试界面
中间有一个确定窗口需要确定下就可以了。
进入仿真界面后,执行RUN按钮运行程序,这时候实验板进入全速运行的状态,可以看到实验板上的LD2发光二极管以一定的频率在闪烁,LD1微亮,这时候顺时针旋转板上的那个电位器,可以发现LD2的闪烁频率变慢,同时LD1的亮度增强。逆时针旋转电位器则反之。
OK,至此STM8S的基础入门到此结束,由于工作繁忙,更深入的了解学习请大家多多探讨,这样才能进步得更快。谢谢~
本工程里的这个ST公司写的测试程序里有详细的英文注释,看看基本都能看懂。中断函数需要在tm8_interrupt_vector.c里写,大家注意下就可以了。现在没有用到什么ST的函数库,所以感觉像在用C语言开发AVR,差别不大。
时间仓促,难免有错别字,请大家谅解。