打印
[STM32F1]

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

[复制链接]
878|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 | 只看该作者
有没有上拉电阻?
芯片工作正常不?

使用特权

评论回复
5
sjzzlxy| | 2017-10-12 09:47 | 只看该作者
说现象,从现象分析问题!

使用特权

评论回复
6
kingkits| | 2017-10-12 10:08 | 只看该作者
你试试改成另一个管脚,如果能上拉,说明代码没问题,是管脚有小电阻的负载

使用特权

评论回复
7
feicien|  楼主 | 2017-10-12 15:45 | 只看该作者
已经可以了,自己的问题设成推挽输出,谢谢大家的回复,这个怎么送分结贴呢

使用特权

评论回复
8
daijun20803| | 2017-10-12 20:24 | 只看该作者
哈哈,是不是该来抢点分啊!

使用特权

评论回复
9
玄德| | 2017-10-12 22:19 | 只看该作者
feicien 发表于 2017-10-12 15:45
已经可以了,自己的问题设成推挽输出,谢谢大家的回复,这个怎么送分结贴呢 ...


推挽有什么不对吗?

使用特权

评论回复
10
Thorald| | 2017-10-15 16:55 | 只看该作者
有没有上拉电阻?

使用特权

评论回复
11
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

主题

33

帖子

0

粉丝