风驰STM8开发板例程教学.pdf

所需积分/C币:50 2019-07-12 11:24:37 8.99MB PDF
收藏 收藏
举报

STM8拥有非常多的寄存器,对于新手来说,直接操作寄存器有很大的难度,所以ST官方提供了一套固件库函数,大家不需要再直接操作繁琐的寄存器,而是直接调用固件库函数即可实现操作寄存器的目的。当然,我们要了解一些外设的原理,必须对寄存器有一定的了解,这对以后开发和调试也是非常有帮助的,所以在我们手册中我们会保留一些重要寄存器的讲解,但是我们的实例代码基本都是调用固件库来实现的。有关寄存器操作的实例,大家可以参考我们寄存器版本的手册及代码。
风驰电子STM8开发板 2011 Options for node" STM&S Demo Category Factory Setl General Option □ Multi-file Compilation CIC++Compiler □ Discard Unused Pubi Assembler Output Converter language Optimizati ons Output List Preprocessor DisL] Custom build Build actions □工 enore standard include direc Additional include directories: (one per line) Debugger SPRO] DIRS.. FWlibinc Simulator 尔 PEOJ DI libero E0TⅡ.EER ST-LINK Preinclud Defined symbols: Cone per a Preprocessor output to □ Preserve comments □ Generate相 ine directive 这里是设置编译路径,使用了3条语句 SPROJ DIRS.. FWlib\inc SPROJ DIRS..FWlib\src SPROJ DIRS.. USER $ PROJ DIR$\意思是找到当前工程的上一级 $ PROJ DIR$\..\ FLib\inc意思是先找到当前工程的上一级Wlib文件夹,再找 到inc文件夹 $ PROJ DIR$、意思是当前文件夹 3/9 风驰电子STM8开发板 2011 Options for node" STM&S Demo Cat Factory Setl General options CC++ Compiler Assembler Output Converter Custom build Build actions v Generate additional output Output E Intel eut ended Simulator Output file ST-LINK 回 Overri de default 这里是设置输出文件为可执行文件 Output fil 回0 verride default STM8S D 此外,我们还有修改一下头文件 4/9 风驰电子STM8开发板 2011 大大大大大大大大古大太大太大古大太大大大太大太大大大大大大大大大大大大太去共太大太大大大大大大大大大大大大实需大大大大大大大大大大大大大大大大大大大 / Define to prevent recursive inclusion 井 LIndeR STtu8sH fdcfinc TI18S H dtogroup sTM8s StdPeriph Driver s Uncomment the line below according to the target simas or sTm8A device used in your licatio 大井 detine srm8S208大 大!<SM8 High density device吕 ith CAN* 井 detine sti8s20? /*!< sTm8S High density devices without CAN * /* #define STMBAF52Ax * /*1< STM8A High density dev=ces with CAN*/ 井 detine sTm8AF白2Ax*/+!<S四M8A日 igh density dev- ces without CAN 大fin805大 /*!< 81m8s Modium density dovicoc 井 define sum8AF626x ★!<STM8 A Mediun density dev立ces★ 大井 detine sTm8S_03大 大!<S卫M88 Low density dev-ce/ 大井 efine s8903÷/ 大!<S卫M8 Low density dev-ces 在sLm8s.h的头文件修改 #define stmss207 /** STM8S High density devices without Can s, 太大大女士大大太古大太太大大大太士太太古太太太太大大古太大大大大大大大太大士大大大大大大女女大大大古大大大士大大太太大大大太太大大x太古太太太 / Define to prevent recursive inclusion CIder STMES CONE H 井 define MB COND II 一一 include ctmBa h Uncomment the line below to enable peripheral header file inclusion * 井立 f defined(SM8S105)|| defined(STM8s103)|| defined(S卫MEs903 defined:S哩吕F∈2x 井inc1ude"stm日sadc.h" 井eai/大(卫阿日105)1|(M8103)|1(M89目3)11SM8EE62白 共立 f defined(5T日s208)| defined(S卫日207)|| defined(Sr8AF52Ax)||def-ned(5TM8AEE2Ax 大#inc1ude"stm8sadc2.h"大 edi日}大(8Ma8208 (SM88207)||(8MBAE62A3)||(8日AF52Ax)本 女主nc1ude"stm8sawu.h"★ /*#include "stm8s beep, h"*/ 井f日 efined(5T8s208) defined(sT8AF52具 井inc1ud h ∈dif/大MB208 卫MAE52A大 s七mseE 大井nc1ude"tm日sf1agh.h"大 井inc1nde"sm月s9p1o.h" 大立n<1ude"s七m8si2c,h"大 *#inc1ude"m日sitc.h”* 大井inc1ude"stm8 g iwda.h 古井inc11de"stm8srst.h" 大井立nc1ude"sm日ssp.h"” 井inc⊥1de"gtm8stin1.h”t indef sTM8s903 /*include stm8s tim2.h+/ 井 endif大S卫MBS903 5/9 风驰电子STM8开发板 2011 #if defi ned(sTMAs2na)I defined(stmas2n7)Il defined(STM=s1n5i defined (STM=AF52AX)I\ defined ( sTm8AF 62Ax) defined (STM8AF62 6H) nc1ude"stm8st主:3.h"★ fendi /* (STM8 S208) defined(smM85207)Il defined(STM8S105 #ifndef sTm8S903 拜 include"s七m日stim4.h" 升cndi:大卫M88903太 fifdef sTN8S903 排inc1ude”stm吕stim5.h inc1ude“stm3stim6,h 井 endif/*S里MBs903大 fif defined (STM8S208)l defined (SrMBS207)i defined(STM8=103)l defined(STM8S9-3)I\ defined (sTM8AF52Ax) defined (sTMB AF 62Ax) 大inc1ude"stm8 s uart1.h”大 计 cdif实8里MB208||8里8207||8里8103||里88903||里B52||8里M8AE6EA 井 if defined(TM8s105 defined (STM8AF 62 6x) inc⊥ude" stmds uart2,h fendi /A STMBS105 STM 8AF 52 6x A/ 井 if defined( STMRSZI月)|| deti ned ( STM月n7)|| efined!sTF月AF5Ax)||de1ned(:TM月AFF2Ax) /* include stm8s uart3, h+/ 井 endif/+SPMB208||里M8s207||里8AF52Ax||SM8AE62Ax* 大inc1ude"Btm88Mwd可,h"* 在stm8 s conf.h的头文件里修改你要用到的头文件,不要用到的资源的头文件 可以把它注释调就可以,方使使用,到这里,相信大家都体会到用库的方使性了 到这里,点击“就可以编译成功了。 Me Building configuration: STM8S_Demo-Debug Updating build tree main. c Linking STM8S Demo. out Total number of errors: 0 Total number of warnings: 0 当你看到这里的话相信你会了怎样创建一个工程了。下面看STM8的一些主要的 初始化,最重要的一点的是时钟的初始化。其实STM8你不设冒时钟也可以运行 的,因为STM8单片机复位它就默认为内部时钟的8分频。所以我们要设置时钟, STM8Ss可以设置外部时钟,也可以设置内部时钟,在这里我们的就设置内部高速 时钟16M,要不然的话,你一日复位,就只有内部16M晶振的8分频。 工程模板里面使用的资源: “stm8sclk.h” stm8s. h stm 8s clk.c 6/9 风驰电子STM8开发板 2011 下面直接看下我们的主数 void main(void) 大工nf1nite1p+ 设置内部时钟16啊为主时钟 CLK HSIPrescalerconfig (CLK PRESCALER HSIDIV1)F 大!< Set high speed interna1c1ock大 wi⊥e(1 *添加你的代 CLK HS| PrescalerConfi!(cLK_ PRESCALER_ HSIDIV1);配置内部高速时钟,就是16M 的内部时钟 void CLK Hs| Prescaler Config(CLK_ Prescaler_ Type Def HSlPrescaler)函数原型 大 brief Configures the HSI C⊥ ock dividers 大回pa工amHS工 Presca1er; Specifies the Hs工c1 ock divider to app⊥y, 大卫 his parameter can be any of the@ ref ClK presca⊥ er TypeDef enumerate. 大 reta1None void CLK HSIPrescalerconfigiCLK prescaler TypeDef HSIPrescaler /* check the parameters * assert param(工 S CLK HS工 PRESCALER OF(HS工 presca1er)) / clear Hig speed internal clock prescaler * CLk->CKDIVR s=(uint8 t)(CLK CKDIVR HSIDIv)i /* Set High speed internal clock prescaler CLK->CKDIVR = (uint8 t)HSIPrescaleri 分频设置是个枚举来的 7/9 风驰电子STM8开发板 2011 六 IE1e CLE C1a: k Diyisear 大 arning: UXXXXXX hst divider 1xX区=Cd1v1der other bite correspond to the dividers bits mapping typedef cnum CLK PR卫 CALER HS工DI1=(unt8t)0xC2r大!< High speed interna1c1 c. p-esca1er:1大 LE PRESCALER HSIDIV2 -(uirlL8 L)0xC3,,*!< High speed inTernal clock p: escaler: 2* CLK卫RE5 CALER HS工DT4 uint8t)0x1],大↓< High speed interna1c1 oc.s prescaler:兰大 CLE PRESCALER HS工D工v8 Quinta t)0x13 /*!< High speed internal clock prescaler: 8 CLR PRESCALER CPUDIⅴ1 (uint8t)0xE,大<CPUc1 oc divis二 on factors1* CLK卫 RESCALER CPUDT Y2 (uint8t)0xE1,大!<CPUc1 ock divison fact。Es2* CLE PRESCALER CPUDTV4 uint8 t)08E2r /*l< Cpu clock divis-on factors 4 * LF PRESCALER CPUDIv8 = (uint8 t)oxE3,/*l< cpu clock divis-on factors 8 CLK PRESCALER CPUDII6 (uint8 t)0xE4 /*!< cPU clock divis_on factors 16 * LK卫 RESCALER CPUDIV32 (uint8t)0xE5!大↓<CPUc1。 ck divis-。 n factors32 CTE PRESCATER CPTTDTVn4 (1 i nta t)nxF5,+!<CPc:1c:diis:on千ac+rF4大 CLF卫R豆日 CALER CPUDTV12日=(uint8t)0xE7大!<CPUc1°cdi1s-。 n factoes128= CLK_Prescaler_rype Daf 时钟的设置可以参考STM8寄存器pdf的图13时钟树 8/9 风驰电子STM8开发板 2011 图13时钟树 KM7因 HSE Ext CPUDN2创 OSCIN HSEOSG 1-24Mz EATCLK OPT BIT Meta Clock CsS T HSIDIV[1: 0] Switch HSI RC 16 MH 2 window Watchdog LSI EN OPT BIT LSIC 128HH to TimerS Io Independant wanhua Weighed clock 1 ADC Enbl得bit AWU CAN PRSC1O OPT BITS UART 128*Hz to Auto wakeup unit [AwUI CKAWNUSEL OPT BIT CANDIE: OI COoSEL: O 1,忍 rate Ckk oup月 miSTER HSE- High Spead Extemal cbok signal HSI=High Spead Intemal clod signal icpuae tcpW LSI=LO Speed intemal clock sional 风驰电子祝您学习愉快~~~!! 9/9 风驰电子STM8开发板 2011 例程一流水灯 流水灯实验是每个电了爱好者学任何一款单片机必备先学会的一个实验,因为流 水灯的操作就是简单的对IO口的直接操作,是初学者最喜欢的一个实验,但你 会了点亮一个灯的时侯,证明了你对这款单片机有了初步的了解和初步的操作, 以后那个模块就相当来说就好办了。 下面介绍下在风驰电子STM8开发板实现流水灯操作要用到的资源 CC3.3 LED R8 PDO LEDO 1K ED R9 PDI LEDI IK LED R10 PD2 <D2 IK LEDA R11 PD3 LED3 IK 这是开发板上的电路连接图。只要给PD0、PD1、PD2、PD3任何一个低电平,灯 就会亮了 流水灯要用到的内部资源 stm8s clk. h simn&s clk stm&s gpio. h stm8s gp10.C stm8s. h 好了,我们先看下主函数 1/5

...展开详情
试读 38P 风驰STM8开发板例程教学.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
抢沙发
一个资源只可评论一次,评论内容不能少于5个字
  • 分享宗师

    成功上传21个资源即可获取
关注 私信 TA的资源
上传资源赚积分,得勋章
最新推荐
风驰STM8开发板例程教学.pdf 50积分/C币 立即下载
1/38
风驰STM8开发板例程教学.pdf第1页
风驰STM8开发板例程教学.pdf第2页
风驰STM8开发板例程教学.pdf第3页
风驰STM8开发板例程教学.pdf第4页
风驰STM8开发板例程教学.pdf第5页
风驰STM8开发板例程教学.pdf第6页
风驰STM8开发板例程教学.pdf第7页
风驰STM8开发板例程教学.pdf第8页

试读结束, 可继续读4页

50积分/C币 立即下载 >