stm32流水灯c语言程序,stm32流水灯程序源码
#include "STM32f10x.h"
#include
#include "delay.h"
/*************************************************
函數: void RCC_Configuration(void)
功能: 復位和時鐘控制 配置
參數: 無
返回: 無
**************************************************/
void RCC_Configuration(void)
{
ErrorStatus HSEStartUpStatus;? ?? ?? ?? ?? ?? ???//定義外部高速晶體啟動狀態枚舉變量
RCC_DeInit();? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?//復位RCC外部設備寄存器到默認值
RCC_HSEConfig(RCC_HSE_ON);? ?? ?? ?? ?? ?? ?? ???//打開外部高速晶振
HSEStartUpStatus = RCC_WaitForHSEStartUp();? ?? ?//等待外部高速時鐘準備好
IF(HSEStartUpStatus == SUCCESS)? ?? ?? ?? ?? ?? ?//外部高速時鐘已經準別好
{
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //開啟FLASH預讀緩沖功能,加速FLASH的讀取。所有程序中必須的用法.位置:RCC初始化子函數里面,時鐘起振之后
FLASH_SetLatency(FLASH_Latency_2);? ?? ?? ?? ?? ?? ???//flash操作的延時
RCC_HCLKConfig(RCC_SYSCLK_Div1);? ?? ?? ?? ?? ?//配置AHB(HCLK)時鐘等于==SYSCLK
RCC_PCLK2Config(RCC_HCLK_Div1);? ?? ?? ?? ?? ? //配置APB2(PCLK2)鐘==AHB時鐘
RCC_PCLK1Config(RCC_HCLK_Div2);? ?? ?? ?? ?? ? //配置APB1(PCLK1)鐘==AHB1/2時鐘
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);??//配置PLL時鐘 == 外部高速晶體時鐘 * 9 = 72MHz
RCC_PLLCmd(ENABLE);? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???//使能PLL時鐘
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)? ? //等待PLL時鐘就緒
{
}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);? ?? ?? ?? ?//配置系統時鐘 = PLL時鐘
while(RCC_GetSYSCLKSource() != 0x08)? ?? ?? ?? ?? ?? ?//檢查PLL時鐘是否作為系統時鐘
{
}
}
RCC_APB2PeriphclockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);??//允許GPIOB、AFIO時鐘
}
/*************************************************
函數: void GPIO_Configuration(void)
功能: GPIO配置
參數: 無
返回: 無
**************************************************/
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;? ?? ???//定義GPIO初始化結構體
/* Configure PE.0,PE.1,PE.2,PE.3,PE.4,PE.5,PE.6,PE.7 as Output push-pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0??;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
/*************************************************
函數: int main(void)
功能: main主函數
參數: 無
返回: 無
**************************************************/
int main(void)
{
RCC_Configuration();
GPIO_Configuration();
delay_init(72);
while(1)
{
GPIO_SetBits(GPIOB,GPIO_Pin_0);
delay_ms(500);
GPIO_ResetBits(GPIOB,GPIO_Pin_0);
delay_ms(500);
}
}
總結
以上是生活随笔為你收集整理的stm32流水灯c语言程序,stm32流水灯程序源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式:抽象工厂模式,结合类图秒懂!
- 下一篇: IP代理常识