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

STM8的C语言编程.doc

STM8的C语言编程.doc

预览

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

15 金币

下载此文档

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

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

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

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

STM8的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,(interrupt_handler_t)_stext},/*reset*/{0x82,NonHandledInterrupt},/*trap*/{0x82,NonHandledInterrupt},/*irq0*/{0x82,NonHandledInterrupt},/*irq1*/{0x82,NonHandledInterrupt},/*irq2*/{0x82,NonHandledInterrupt},/*irq3*/{0x82,NonHandledInterrupt},/*irq4*/{0x82,NonHandledInterrupt},/*irq5*/{0x82,NonHandledInterrupt},/*irq6*/{0x82,NonHandledInterrupt},/*irq7*/{0x82,NonHandledInterrupt},/*irq8*/{0x82,NonHandledInterrupt},/*irq9*/{0x82,NonHandledInterrupt},/*irq10*/{0x82,NonHandledInterrupt},/*irq11*/{0x82,NonHandledInterrupt},/*irq12*/{0x82,NonHandledInterrupt},/*irq13*/{0x82,NonHandledInterrupt},/*irq14*/{0x82,NonHandledInterrupt},/*irq15*/{0x82,NonHandledInterrupt},/*irq16*/{0x82,NonHandledInterrupt},/*irq17*/{0x82,NonHandledInterrupt},/*irq18*/{0x82,NonHandledInterrupt},/*irq19*/{0x82,NonHandledInterrupt},/*irq20*/{0x82,NonHandledInterrupt},/*irq21*/{0x82,NonHandledInterrupt},/*irq22*/{0x82,NonHandledInterrupt},/*irq23*/{0x82,NonHandledInterrupt},/*irq24*/{0x82,NonHandledInterrupt},/*irq25*/{0x82,NonHandledInterrupt},/*irq26*/{0x82,NonHandledInterrupt},/*irq27*/{0x82,NonHandledInterrupt},/*irq28*/{0x82,NonHandledInterrupt},/*irq29*/};