STM32流水灯(纯寄存器方式)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

E:\程序\ARM\ARM7\STM32F103\LED\main.c/*********************************Copyright(c)************************************作者:唐斌**单位:深圳市仁宏科技有限公司**QQ:496649247**E-MAIL:tangbin.renhong@.gmail----------------------------------最新版本信息-----------------------------------**功能:流水灯**时间:**版本:**单片机:STM32F103RC**晶振:外部8M,倍频到72M;**描述:----------------------------------历史版本信息-----------------------------------**功能:**时间:**版本:**单片机:**晶振:**描述:********************************************************************************/#includestm32f10x_hd.h#includeSystem.h//系统时钟#defineGPIO_MODE_CRH(GPIO_CRH_MODE12|GPIO_CRH_MODE13|GPIO_CRH_MODE14|GPIO_CRH_MODE15)/***********************************************函数名:Delay(uint32_tnCount);**输入:nCount**输出:无**功能描述:延时**局部变量:无**全局变量:无**调用模块:无**备注:**********************************************/voidDelay(uint32_tnCount){for(;nCount!=0;nCount--);}/***********************************************函数名:GPIO_Init()**输入:无**输出:无**功能描述:IO初始化**局部变量:无**全局变量:无**调用模块:无Page:1E:\程序\ARM\ARM7\STM32F103\LED\main.c**备注:**********************************************/voidGPIO_Init(){RCC-APB2ENR=RCC_APB2ENR_IOPBEN;//允许端口B时钟GPIOB-CRH=GPIO_MODE_CRH;//输出模式50M}/***********************************************函数名:main();**输入:无**输出:无**功能描述:主函数**局部变量:无**全局变量:无**调用模块:GPIO_Init();**备注:**********************************************/intmain(){GPIO_Init();while(1){GPIOB-BSRR=GPIO_BSRR_BS12;//置1Delay(0xfffff);GPIOB-BSRR=GPIO_BSRR_BR12;//清0GPIOB-BSRR=GPIO_BSRR_BS13;//置1Delay(0xfffff);GPIOB-BSRR=GPIO_BSRR_BR13;//清0GPIOB-BSRR=GPIO_BSRR_BS14;//置1Delay(0xfffff);GPIOB-BSRR=GPIO_BSRR_BR14;//清0GPIOB-BSRR=GPIO_BSRR_BS15;//置1Delay(0xfffff);GPIOB-BSRR=GPIO_BSRR_BR15;}}Page:2E:\程序\ARM\ARM7\STM32F103\LED\System.c#includestm32f10x_hd.h#includeSystem.hvoidSystemInit(void){__IOuint32_tStartUpCounter=0,HSEStatus=0;/*SYSCLK,HCLK,PCLK2andPCLK1configuration---------------------------*//*EnableHSE*/RCC-CR|=((uint32_t)RCC_CR_HSEON);/*WaittillHSEisreadyandifTimeoutisreachedexit*/do{HSEStatus=RCC-CR&RCC_CR_HSERDY;StartUpCounter++;}while((HSEStatus==0)&&(StartUpCounter!=HSE_STARTUP_TIMEOUT));if((RCC-CR&RCC_CR_HSERDY)!=RESET){HSEStatus=(uint32_t)0x01;}else{HSEStatus=(uint32_t)0x00;}if(HSEStatus==(uint32_t)0x01){/*EnablePrefetchBuffer*/FLASH-ACR|=FLASH_ACR_PRFTBE;/*Flash2waitstate*/FLASH-ACR&=(uint32_t)((uint32_t)~FLASH_ACR_LATENCY);FLASH-ACR|=(uint32_t)FLASH_ACR_LATENCY_2;/*HCLK=SYSCLK*/RCC-CFGR|=(uint32_t)RCC_CFGR_HPRE_DIV1;/*PCLK2=HCLK*/RCC-CFGR|=(uint32_t)RCC_CFGR_PPRE2_DIV1;/*PCLK1=HCLK*/RCC-CFGR|=(uint32_t)RCC_CFGR_PPRE1_DIV2;/*PLLconfiguration:PLLCLK=HSE*9=72MHz*/RCC-CFGR&=(uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC|RCC_CFGR_PLLXTPRE|RCC_CFGR_PLLMULL));RCC-CFGR|=(uint32_t)(RCC_CFGR_PLLSRC_HSE|RCC_CFGR_PLLMULL9);/*EnablePLL*/RCC-CR|=RCC_CR_PLLON;/*WaittillPLLisready*/while((RCC-CR&RCC_CR_PLLRDY)==0){}/*SelectPLLassystemclocksource*/RCC-CFGR&=(uint32_t)((uint32_t)~(RCC_CFGR_SW));RCC-CFGR|=(uint32_t)RCC_CFGR_SW_PLL;Page:1E:\程序\ARM\ARM7\STM32F103\LED\System.c/*WaittillPLLisusedassystemclocksource*/while((RCC-CFGR&(uint32_t)RCC_CFGR_SWS)!=(uint32_t)0x08){}}else{/*IfHSEfailstostart-up,theapplicationwillhavewrongclockconfiguration.Usercanaddheresomecodetodealwiththiserror*/}}Page:2

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功