STM32系统设置

上传人:学*** 文档编号:299783700 上传时间:2022-05-28 格式:DOCX 页数:7 大小:17.37KB
返回 下载 相关 举报
STM32系统设置_第1页
第1页 / 共7页
STM32系统设置_第2页
第2页 / 共7页
STM32系统设置_第3页
第3页 / 共7页
STM32系统设置_第4页
第4页 / 共7页
STM32系统设置_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《STM32系统设置》由会员分享,可在线阅读,更多相关《STM32系统设置(7页珍藏版)》请在金锄头文库上搜索。

1、本文格式为Word版,下载可任意编辑STM32系统设置 #include #include / /系统时钟初始化 /* /V1.4修改说明 /把NVIC KO了,没有使用任何库文件! /参与了JTAG_Set函数 / /设置向量表偏移地址 /NVIC_VectTab:基址 /Offset:偏移量 /CHECK OK /091207 void MY_NVIC_SetVectorTable(u32 NVIC_VectTab, u32 Offset) /检查参数合法性 assert_param(IS_NVIC_VECTTAB(NVIC_VectTab); assert_param(IS_NVIC_O

2、FFSET(Offset); SCB-VTOR = NVIC_VectTab|(Offset /设置NVIC的向量表偏移寄放器 /用于标识向量表是在CODE区还是在RAM区 /设置NVIC分组 /NVIC_Group:NVIC分组 04 总共5组 /CHECK OK /091209 void MY_NVIC_PriorityGroupConfig(u8 NVIC_Group) u32 temp,temp1; temp1=(NVIC_Group)/取后三位 temp1AIRCR; /读取从前的设置 temp /清空从前分组 temp|=0X05FA0000; /写入钥匙 temp|=temp1;

3、 SCB-AIRCR=temp; /设置分组 /设置NVIC /NVIC_PreemptionPriority:抢占优先级 /NVIC_SubPriority :响应优先级 /NVIC_Channel :中断编号 /NVIC_Group :中断分组 04 /留神优先级不能超过设定的组的范围!否那么会有意想不到的错误 /组划分: /组0:0位抢占优先级,4位响应优先级 /组1:1位抢占优先级,3位响应优先级 /组2:2位抢占优先级,2位响应优先级 /组3:3位抢占优先级,1位响应优先级 /组4:4位抢占优先级,0位响应优先级 /NVIC_SubPriority和NVIC_PreemptionPr

4、iority的原那么是,数值越小,越优先 /CHECK OK /100329 void MY_NVIC_Init(u8 NVIC_PreemptionPriority,u8 NVIC_SubPriority,u8 NVIC_Channel,u8 NVIC_Group) u32 temp; u8 IPRADDR=NVIC_Channel/4; /每组只能存4个,得到组地址 u8 IPROFFSET=NVIC_Channel%4;/在组内的偏移 IPROFFSET=IPROFFSET*8+4; /得到偏移确实切位置 MY_NVIC_PriorityGroupConfig(NVIC_Group);/

5、设置分组 temp=NVIC_PreemptionPriorityISER0|=1ISER1|=1IPRIPRADDR|=tempAPB2ENR|=0x01;/使能io复用时钟 AFIO-EXTICREXTADDR/除掉原来设置! AFIO-EXTICREXTADDR|=GPIOxIMR|=1EMR|=1APB1RSTR = 0x00000000;/复位终止 RCC-APB2RSTR = 0x00000000; RCC-AHBENR = 0x00000014; /睡眠模式闪存和SRAM时钟使能.其他关闭. RCC-APB2ENR = 0x00000000; /外设时钟关闭. RCC-APB1E

6、NR = 0x00000000; RCC-CR |= 0x00000001; /使能内部高速时钟HSION RCC-CFGR /复 SW1:0,HPRE3:0,PPRE12:0,PPRE22:0,ADCPRE1:0,MCO2:0 RCC-CR /复位HSEON,CSSON,PLLON RCC-CR /复位HSEBYP RCC-CFGR /复位PLLSRC, PLLXTPRE, PLLMUL3:0 and USBPRE RCC-CIR = 0x00000000; /关闭全体中断 /配置向量表 #ifdef VECT_TAB_RAM MY_NVIC_SetVectorTable(NVIC_Vect

7、Tab_RAM, 0x0); #else MY_NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); #endif /THUMB指令不支持汇编内联 /采用如下方法实现执行汇编指令WFI /CHECK OK /091209 位 _asm void WFI_SET(void) WFI; /进入待机模式 /check ok /091202 void Sys_Standby(void) SCB-SCR|=1CTRL) PWR-CSR|=1CR|=1CR|=1APB1ENR|=1APB1ENR|=1APB1ENR|=1CR|=1DR1=dat; break; cas

8、e 2: BKP-DR2=dat; break; case 3: BKP-DR3=dat; break; case 4: BKP-DR4=dat; break; case 5: BKP-DR5=dat; break; case 6: / / / / / BKP-DR6=dat; break; case 7: BKP-DR7=dat; break; case 8: BKP-DR8=dat; break; case 9: BKP-DR9=dat; break; BKP-DR10=dat; break; / / / / / / / / / case 10: / / /系统软复位 /CHECK OK

9、/091209 void Sys_Soft_Reset(void) SCB-AIRCR =0X05FA0000|(u32)0x04; /JTAG模式设置,用于设置JTAG的模式 /mode:jtag,swd模式设置;00,全使能;01,使能SWD;10,全关闭; /CHECK OK /100818 void JTAG_Set(u8 mode) /系统时钟初始化函数 /pll:选择的倍频数,从2开头,最大值为16 /CHECK OK /091209 void Stm32_Clock_Init(u8 PLL) unsigned char temp=0; u32 temp; temp=mode; tempAPB2ENR|=1MAPR /除掉MAPR的26:24 AFIO-MAPR|=temp; /设置jtag模式 7

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号