STM8的C语言编程.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:34 大小:1.3MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

STM8的C语言编程.pdf

STM8的C语言编程.pdf

预览

免费试读已结束,剩余 24 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

献给迷茫中的STM8初学者本文内容整理与网络,适用于对单片机有一定的了解和熟悉的人.希望你们能够快速上手并应用STM8.本文所有例程适用于COSMIC和IAR编译器,更多学习资料可以登录我们的官网和论坛查找。—QIYONG目录STM8的C语言编程(1)--基本程序与启动代码分析.................................1STM8的C语言编程(2)--变量空间的分配.................................................5STM8的C语言编程(3)--GPIO输出..........................................................6STM8的C语言编程(4)--GPIO输出和输入..............................................8STM8的C语言编程(5)--8位定时器应用之一.........................................9STM8的C语言编程(6)--8位定时器应用之二.......................................10STM8的C语言编程(7)--16位定时器的中断应用.................................14STM8的C语言编程(8)--UART应用.......................................................16STM8的C语言编程(9)--EEPROM应用................................................20STM8的C语言编程(10)--修改CPU的时钟..........................................22STM8的C语言编程(11)--切换时钟源....................................................25STM8的C语言编程(12)--AD转换..........................................................27STM8的C语言编程(13)--蜂鸣器............................................................29STM8的C语言编程(14)--PWM...............................................................30STM8的C语言编程(1)--基本程序与启动代码分析现在几乎所有的单片机都能用C语言编程了,采用C语言编程确实能带来很多好处,至少可读性比汇编语言强多了。在STM8的开发环境中,可以通过新建一个工程,自动地建立起一个C语言的框架,生成后开发环境会自动生成2个C语言的程序,一个是main.c,另一个是stm8_interrupt_vector.c。main.c中就是一个空的main()函数,如下所示:/*MAIN.Cfile**Copyright(c)2002-2005STMicroelectronics*/main(){while(1);}而在stm8_interrupt_vector.c中,就是声明了对应该芯片的中断向量,如下所示:/*BASICINTERRUPTVECTORTABLEFORSTM8devices*Copyright(c)2007STMicroelectronics*/typedefvoid@far(*interrupt_handler_t)(void);structinterrupt_vector{unsignedcharinterrupt_instruction;interrupt_handler_tinterrupt_handler;};@far@interruptvoidNonHandledInterrupt(void){/*inordertodetectunexpectedeventsduringdevelopment,itisrecommendedtosetabreakpointonthefollowinginstruction*/return;}externvoid_stext();/*startuproutine*/structinterrupt_vectorconst_vectab[]={{0x82,(i