程序烧到芯片里,怎么没出现正确结果啊,哪里错了

2019-03-23 18:48发布

#include"led.h"
void LED_GPIO_Config()
{
   GPIO_InitTypeDef GPIO_InitStructure;
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE); //开启GPIO_G外设时钟

   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;    //板上LED编号 D2
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   //通用推挽输出
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   //设置引脚速率
   GPIO_Init(GPIOG, &GPIO_InitStructure);     //调用库函数,初始化GPIO_G
      GPIO_ResetBits(GPIOG,GPIO_Pin_14 );   //关闭LED灯
    }


#include "stm32f10x.h"
#include"led.h"
/*****************************/
void Delay(vu32 nCount)
{
   for(; nCount != 0; nCount--);
}
/****************************/
main()  //点亮D2
{
   void LED_GPIO_Config();
   while(1)
    {
      GPIO_SetBits(GPIOG,GPIO_Pin_14 );
      Delay(0x8ffff);
      GPIO_ResetBits(GPIOG,GPIO_Pin_14 );   
      Delay(0x8ffff);
    }
}
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
ylyfxzsx
2019-03-24 13:36
STM32吧,没见到你初始化时钟函数,加上试试,除了COPY代码,认真看下编程手册,了解工作机制。MCU三要素,电源,复位,时钟。

1.png

void RCC_Configuration(void)
{
       
   ErrorStatus HSEStartUpStatus;                               /* 定义枚举类型变量        */
       
       
    RCC_DeInit();                                               /* 复位系统时钟设置*/

    RCC_HSEConfig(RCC_HSE_ON);                                  /* 开启HSE*/

    HSEStartUpStatus = RCC_WaitForHSEStartUp();                 /* 等待HSE起振并稳定*/

    if(HSEStartUpStatus == SUCCESS)                             /* 判断HSE起是否振成功,是则进入if()内部 */
    {                                                         

    RCC_HCLKConfig(RCC_SYSCLK_Div1);                           /* 选择HCLK(AHB)时钟源为SYSCLK 1分频 */

    RCC_PCLK2Config(RCC_HCLK_Div1);                            /* 选择PCLK2时钟源为 HCLK(AHB) 1分频 */

    RCC_PCLK1Config(RCC_HCLK_Div2);                            /* 选择PCLK1时钟源为 HCLK(AHB) 2分频 */
                       
                FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);      /* 使能FLASH预取缓存 */     

    FLASH_SetLatency(FLASH_Latency_2);                         /* 设置FLASH延时周期数为2 */  

    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);      /* 选择锁相环(PLL)时钟源为HSE 1分频,倍频数为9,则PLL输出频率为 8MHz * 9 = 72MHz */     

    RCC_PLLCmd(ENABLE);                                        /* 使能PLL */

    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)         /* 等待PLL输出稳定 */

    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);                 /* 选择SYSCLK时钟源为PLL */

    while(RCC_GetSYSCLKSource() != 0x08);                      /* 等待PLL成为SYSCLK时钟源 */
  }

/**************************************************************************************************

  * 打开外设时钟  GPIOA,B,C,D,E
       
***************************************************************************************************/
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA
                         | RCC_APB2Periph_GPIOB
                           | RCC_APB2Periph_GPIOC
                             | RCC_APB2Periph_GPIOD
                               | RCC_APB2Periph_GPIOE
                                 | RCC_APB2Periph_AFIO, ENABLE);


}


一周热门 更多>