STM8S各个模块初始化

上传人:lj****c 文档编号:158226089 上传时间:2022-10-03 格式:DOC 页数:8 大小:26.50KB
收藏 版权申诉 举报 下载
STM8S各个模块初始化_第1页
第1页 / 共8页
STM8S各个模块初始化_第2页
第2页 / 共8页
STM8S各个模块初始化_第3页
第3页 / 共8页
资源描述:

《STM8S各个模块初始化》由会员分享,可在线阅读,更多相关《STM8S各个模块初始化(8页珍藏版)》请在装配图网上搜索。

1、SM8S各个模块初始化转原作者真不错 201229 22:0:38| 分类:默认分类 标签:s8 举报字号 订阅/*可选择的内部或者外部时钟*ifdef HSE_EXTvoid ClkIit(vod) CLK_CR = X0; /禁止高速内部时钟,从停机(Halt)或活跃停机(Actve Hal) 模式快速唤醒禁止CL_CR | 0X01; /使能外部时钟 hile(!(CLK_ECKR 0x02); /看外部晶振是否启动 LKECK =001; /使能外部时钟CLK_CKDIVR = 0Xf; /外部12M HZ晶振作为CPU时钟 /入选24Mhz就在CK_WCR |= 0X02;出现问题

2、CK_R 0B4; /主时钟选择为外部晶振wile(!(CLKWC 0x8); CLK_SWCR |0X; /时钟切换 CLK_PCKNR1=0f; /使能MSE时钟与对应外设的连接(仅I2C和M2,aIM1)还有ART1,art3 spi CLK_PCKNR = 0X0; /0X0C; LK_CSSR= 0X00; /时钟安全系统寄存器关 hie((LK_CCOR 0x04); /空闲才可以写CCOSEL LK_CCOR = 0X0d; /使能CC始终输出, i(!(K_CC & x04); /看CCO输出的时钟是否正在工作 whle((CLK_COR 0x02); /等待可输出时钟可用 /

3、L_HSITRM = 0X001; /SI时钟修正寄存器,HSITRIM3:0:HS修正值lsevid kInt(v) CL_ICKR=0X; /时能高速内部时钟,从停机(Halt)或活跃停机(Actve Halt)模式快速唤醒使能CLK_R=X0; /禁止外部时钟KSW =0XE; /选择16M内部时钟为主时钟 CLK_WR=X00; /禁止时钟切换CLK_CDVR=X0; /8MHZ :01:HI= SI RC输出2 , :0000:fCPU = fMASTER L_PKENR1 = 0Xf; /使能fMASTE时钟与对应外设的连接(仅I2C和M,and TIM1)还有URT,at3 pi

4、CLK_CKENR2 = 0X0; /0XC; LKSX0; /时钟安全系统寄存器关 CLK_HSITRM=0X00-; /HI时钟修正寄存器,HSTRI3::HSI修正值dif/*外部中断*/viIneruptInt(vid)PD_DR (0X40); /PD6设置为按键输? PDCR1 =0X40; PD_CR2 =(040); /禁止外部中断/ PD_CR =0X40; /使能外部中断EXCR1 |=0X80; PD下降沿出触发中断/ EXTCR =0X0; /PD上升沿出触发中断/*串口收发*/voi Uar3Int(vid) UART3_C1= 0x; AR_CR = 0x0; UA

5、R3_CR3 =0; /1个停止位 UAR3_RR2= 0x04; /24M的Fmste下900的波特率 RT3_BRR1 = 09c; /2400000/9600 = 0x094 URT3_CR2= 0x2c; /发送接收都使能,使能接收中断 voi Uart3SedCh(8 *Send_Buf,8 Cn) U ; for(=0;iCt;i+) whie(!(URT_SR & 0x80); ART3_D=Sen_ufi; /*定时器*/oid imer1Init(voi) TIM1_CR1 =0X04; /自动重载,只有溢出才产生更新中断 M_IR |=0X01; /允许更新中断/ T_SR

6、10X0; /状态寄存器 TM1_SR =0X01; /PSC3:0:预分频器的值 ,开预分频功能不许使能GR中的G位/TIM1_PSR 0X0; /PC3:0:4预分频器的值 TIM2_EGR |=0X01; /时间产生状态寄存器,重新初始化计数器,并产生一个更新事件。 /如果不开预分频功能,此位可以删去/TIM2_CCR100; /捕获/比较模式寄存器,可用于选择PM输出端口 /TI2_CMR1=0; /PW模式,通道1,预装载使能/ TIM2_CCM2=06; /PM模式,通道2,预装载使能/IM2CR2=003; 使能PWM输出通道/ TI2CER1=0X03; 使能PM输出通道 IM

7、1_TH=09C; /计数值 TIM1_CNTRL=0X4; TI1_AH=0X9C; /自动重载值(1进一次中断),2分频,400/40000=10m IM1ARRL=X40; TIM1_CR1|=0X0; /开计数器/*AWU唤醒*/vdWU_Opn(vod) AWU_AR = X3E; /APPRi=64 ATBR = 0XD; time inevl = 11 PPRdiV/ls20486/18KZ=1S 0D2S/ AU_TB 0X0E; /tie inera 211PRdiVFs=048*64/128KHZ=1SE=大约5S WU_SR = 0; enblAU,AU_INT CLKC

8、KR 0X0; /1:活跃停机(ActiveHalt) 模式下主an tio ji q guan bivod AWU_Coe(oid) AWUAR= 3F; /APdiV AU_TBR = X00; /disable tim iteal AW_CSR =0x00; /dsab AU CL_CKR &=(020);voidEPROM_Init(oid) FASH_1= x0; FLSHCR =0x00; LAHDUKR=MASSKY1; FLASH_DUKR = MS_K; /密钥使能 wile(!(FH_IAPR&0x08); 等待写保护解锁/*EEPRM*/ EPROM_Wre(8 r,u8

9、 dt) u TimeOt; *(8*)(ad EEP_SE)) = dat; fo( TimeOu 0; TimOu 0xFF;TeOu+ ) i( FLASH_IR ( WP_D E_BIT )reurn ; /编程完成或者写到了写保护区 ern 0; /超时退出 /whle(!(FLASH_IAPSx); /等待写完成*/u8 EEROM_Read(u8ad) return *((u8*)(EEP_SE addr));id EEROM_HEE_BYE_WRITE(void) EPROM_Wrie(000,i2c_buff); EROM_rite(x01,2c_buff1); EEROM_

10、ie(2,2c_buff2);void EERMTHEYTE_READ(void) if(AD_Onf=) ADC_N_OR_OFF=2; els DCON_OOF=EEPRORead(x); A_OPEN_MEEPROM_Read(0x1);ADC_PEN_TIE=EPOM_Read(0x02);/*C*/id dcinit(vid) ADCCR |=X00; /关闭AC,2分频 DC_CR2=00; /数据右对齐,lBI AT AC_DRL;非扫描模式ADC_CSR =X0; /选择通道, 禁止中断 /*取走D转换i个通道的数据*/u16 adc_onvt(void) u8 ; for(=

11、0;m3;m+); /等待上电完成 DCCR1 |=01; /启动转换 while(!(ADC_CSR0x80); /等待转换结束 14个时钟周期 ADC_SR &= 0X7; /清除中断标志 retn ADC_DR; /*I2C*void IC_ini(void) _CCH 0x00; /标准I2接口 /I2C_CCR = 80 ; /I2CFEQR = 0x; /输入外设时钟频率为2MzI2CC1 00; /禁止I外设I2C_FREQR =8; / 8MHZ /经测试主芯片时钟至少8Mh才能正常收到数据2C_OARL = SAVE_DDRESS; /IC_OAR = x0; / 七位/I2

12、COAH = C0 (SVE_ADDRS x300) ); / 十位I2_CR1 = 01; /开IC2C_R2 0x04; /只产生应答信号,不产生起始和停止位I2C_ITR 7; /使能中断voidsp_int(vo) SPIR=X; SI_CR1 0X44; /8HZ 主模式 B_DDR | 1 5; CK BCR1 =1 5; /ouput P_DDR 1 6; /MOSI P_CR1 = 1 6; /ot PB_DR = (1 KeIContnuS) / KeyResFla=; u16TierCt=0; keynf=KeyRt; lse / KstFlag=0; keybuf0; u

13、6Ter1Cnt=0; if(kyinuf=eycku) if(f_ky_st) kycvtuf=kckbuf; e_state=0; es keyckbukeyinuf; f_key_tat=1; if(eycvu!=keyodbuf) keyvalue=kecvtbuf&(kyodbu); keydbuf=kycvf; /* if(eyctbu!=keyoldbu) /按键按下 / keyvlue=kycvb(kelbf); eymeivlu=kycvtbuf&(kyolbu);/ eylbf=keycvtuf; key_up_lag=1;/ retr evalue; f(e_upg=1) /按键抬起 i(kcvtbu=elduf) ky_p_flg=; kealueeymediave; / rtrn 0;*文中如有不足,请您指教!8 / 8

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!