[STM32F1] 求助!这个代码的问题在哪里?

[复制链接]
1105|10
 楼主| feicien 发表于 2017-10-11 23:36 | 显示全部楼层 |阅读模式
//很简单的只是拉高拉低PB6,但是调试就是不能拉高拉低PB6

ErrorStatus HSEStartUpStatus;

void RCC_Configuration(void)
{
    /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration -----------------------------*/   
     
  /* RCC system reset(for debug purpose) */
        RCC_DeInit();

  /* Enable HSE */
        RCC_HSEConfig(RCC_HSE_ON);

  /* Wait till HSE is ready */
        HSEStartUpStatus = RCC_WaitForHSEStartUp();

        if(HSEStartUpStatus == SUCCESS)
        {
    /* Enable Prefetch Buffer */
                FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

    /* Flash 2 wait state */
                FLASH_SetLatency(FLASH_Latency_2);

    /* HCLK = SYSCLK */
                RCC_HCLKConfig(RCC_SYSCLK_Div1);
  
    /* PCLK2 = HCLK */
                RCC_PCLK2Config(RCC_HCLK_Div1);

    /* PCLK1 = HCLK/2 */
                RCC_PCLK1Config(RCC_HCLK_Div2);  // 36MZH

    /* On STICE the PLL output clock is fixed to 48 MHz */
                RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);

    /* Enable PLL */
                RCC_PLLCmd(ENABLE);

    /* Wait till PLL is ready */
                while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
                {
                }

    /* Select PLL as system clock source */
                RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

    /* Wait till PLL is used as system clock source */
                while(RCC_GetSYSCLKSource() != 0x08)
                {
                }
        }

}

void Delay(vu32 nCount)
{
  for(; nCount!= 0;nCount--);
}


int main(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
       
        RCC_Configuration();
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);         
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_OD;
        GPIO_Init(GPIOB,&GPIO_InitStructure);
        GPIO_ResetBits(GPIOB,GPIO_Pin_6);
       
         while(1)
         {
                        GPIO_SetBits(GPIOB,GPIO_Pin_6);
                        Delay(500);
                        GPIO_ResetBits(GPIOB,GPIO_Pin_6);
                        Delay(500);
         }
}
xyz549040622 发表于 2017-10-12 09:05 | 显示全部楼层
其他IO可以拉高拉低吗?不能拉高拉低是几个意思,现在是什么电平呢?
mmuuss586 发表于 2017-10-12 09:19 | 显示全部楼层
设置成上拉输出试下
ningling_21 发表于 2017-10-12 09:40 | 显示全部楼层
有没有上拉电阻?
芯片工作正常不?
sjzzlxy 发表于 2017-10-12 09:47 | 显示全部楼层
说现象,从现象分析问题!
kingkits 发表于 2017-10-12 10:08 | 显示全部楼层
你试试改成另一个管脚,如果能上拉,说明代码没问题,是管脚有小电阻的负载
 楼主| feicien 发表于 2017-10-12 15:45 | 显示全部楼层
已经可以了,自己的问题设成推挽输出,谢谢大家的回复,这个怎么送分结贴呢
daijun20803 发表于 2017-10-12 20:24 来自手机 | 显示全部楼层
哈哈,是不是该来抢点分啊!
玄德 发表于 2017-10-12 22:19 | 显示全部楼层
feicien 发表于 2017-10-12 15:45
已经可以了,自己的问题设成推挽输出,谢谢大家的回复,这个怎么送分结贴呢 ...


推挽有什么不对吗?

Thorald 发表于 2017-10-15 16:55 | 显示全部楼层
有没有上拉电阻?
sky.sun.zz 发表于 2017-10-15 17:02 | 显示全部楼层
  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_OD;
改成:
  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

34

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部