这是我修改的一部分主程序里的点亮LED的程序
单片机源程序如下:
- /********************************************************************************/
- /* 2017年9月15日STM32F103ZET6最小系统开发板 LED3闪烁 PE5-->LED3 */
- /********************************************************************************/
- #include "stm32f10x_lib.h"
- ErrorStatus HSEStartUpStatus;
- void Delay(vu32 nTime);
- void RCC_Configuration(void);
- void GPIO_Configuration(void);
-
- int main(void)
- {
- RCC_Configuration(); /* 配置系统时钟 */
- GPIO_Configuration(); /* 配置GPIO IO口初始化 */
-
-
- while(1)
- {
- GPIO_ResetBits(GPIOB,GPIO_Pin_5);
- Delay(0XFFFFF);
- GPIO_SetBits(GPIOB,GPIO_Pin_5);
- Delay(0XFFFFF);
- GPIO_ResetBits(GPIOE,GPIO_Pin_5);
- Delay(0XFFFFF);
- GPIO_SetBits(GPIOE,GPIO_Pin_5);
- Delay(0XFFFFF);
- GPIO_ResetBits(GPIOE,GPIO_Pin_6);
- Delay(0XFFFFF);
- GPIO_SetBits(GPIOE,GPIO_Pin_6);
- Delay(0XFFFFF);
-
- }
- }
- /*******************************************************************************
- * Function Name : RCC_Configuration
- * Description : Configures the different system clocks.
- *******************************************************************************/
- void RCC_Configuration(void)
- {
- RCC_DeInit(); /* RCC system reset(for debug purpose) */
- RCC_HSEConfig(RCC_HSE_ON); /*打开外部高速晶振(HSE)*/
- /*等待HSE起振 该函数将等待直到HSE就绪,或者在超时的情况下退出*/
- HSEStartUpStatus = RCC_WaitForHSEStartUp();
- if(HSEStartUpStatus == SUCCESS)
- {
- RCC_HCLKConfig(RCC_SYSCLK_Div1); /* 设置AHB时钟(HCLK),AHB时钟 = 系统时钟 */
- RCC_PCLK2Config(RCC_HCLK_Div1); /* 设置高速AHB时钟(PCLK2),APB2时钟 = HCLK */
- RCC_PCLK1Config(RCC_HCLK_Div2); /* 设置低速AHB时钟(PCLK1),APB1时钟 = HCLK/2 */
- FLASH_SetLatency(FLASH_Latency_2); /* Flash 2 wait state */
- FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); /* 使能或者失能预取指缓存,预取指缓存使能 */
- /* 设置PLL时钟源及倍频系数PLL的输入时钟 = HSE时钟频率 PLL输入时钟 x 9 */
- RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
- RCC_PLLCmd(ENABLE); /*使能PLL*/
- /* Wait till PLL is ready 检查指定的RCC标志位设置与否PLL就绪 */
- while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
- RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /* 设置系统时钟(SYSCLK)选择PLL作为系统时钟 */
- /* Wait till PLL is used as system clock source 返回用作系统时钟的时钟源0x08:PLL作为系统时钟 */
- while(RCC_GetSYSCLKSource() != 0x08);
- }
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOE, ENABLE); /* 定义输出端口*/
- }
- /*******************************************************************************
- * Function Name : GPIO_Configuration PB5-->LD2 PE5-->LD3 PE6-->LD4
- * Description : Configures the different GPIO ports.
- *******************************************************************************/
- void GPIO_Configuration(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- /* PB5口配置为输出 */
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOB, &GPIO_InitStructure);
- /* PE5~PE6口配置为输出 */
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOE, &GPIO_InitStructure);
- }
- void Delay(vu32 nCount) /* 延时 */
- {
- for(; nCount != 0; nCount--);
- }
- //while(1)
- //{
- // GPIOE->BSSRR = 0xffdf;
- // Delay(5000000);
- //GPIOE->ODR = 0xffff; /* PE5=1 --> 熄灭LED3 */
- //Delay(5000000);
- //
- //}
- //
复制代码
所有资料51hei提供下载:
LED234.rar
(220.28 KB, 下载次数: 60)
|