看看代码有毛病吗

2019-10-11 15:26发布

这是主函数
# include "led.h"
void delay(int i)
{
        while(i--);
}
int main (void)
{
        LED_Init();
       
          
                 while(1)
                 {
                 
                                GPIO_ResetBits(GPIOC,GPIO_Pin_All);
                                delay(60000);
                                GPIO_SetBits(GPIOC,GPIO_Pin_All);
                 }
                 
}
# include "led.h"
# include "stm32f10x_gpio.h"
void LED_Init()
{
        GPIO_InitTypeDef  GPIO_InitStructure;
        SystemInit ();
        GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Pin =GPIO_Pin_All;
        GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE );
        GPIO_Init(GPIOC,&GPIO_InitStructure);
}
想写一个led灯闪烁的程序 但是程序下载进去之后led灯只闪烁了六次之后不闪了是什么原因


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
lym32
1楼-- · 2019-10-12 18:54
773208906 发表于 2017-3-17 08:41
你在SETBIT后面再加个延时啊

加了 还是只闪了六次
lym32
2楼-- · 2019-10-13 00:04
 精彩回答 2  元偷偷看……
773208906
3楼-- · 2019-10-13 05:05
你这个初始化那个灯对应的IO脚到底是PC多少,直接初始化那个io脚就行,不要把所有IO脚都初始化,这样调试接口也会被你用了
lym32
4楼-- · 2019-10-13 09:53
773208906 发表于 2017-3-18 09:09
你这个初始化那个灯对应的IO脚到底是PC多少,直接初始化那个io脚就行,不要把所有IO脚都初始化,这样调试接 ...

我用的是所有的灯
lym32
5楼-- · 2019-10-13 14:12
gsndragon 发表于 2017-3-12 13:43
仿真看下卡哪了

     6:         LED_Init();
0x08000590 F7FFFF0A  BL.W     LED_Init (0x080003A8)
     7:         while(1)
     8:         {
0x08000594 E011      B        0x080005BA
     9:                 GPIO_ResetBits(GPIOC,GPIO_Pin_All);
0x08000596 F64F71FF  MOVW     r1,#0xFFFF
0x0800059A 4808      LDR      r0,[pc,#32]  ; @0x080005BC
0x0800059C F7FFFEFD  BL.W     GPIO_ResetBits (0x0800039A)
    10:                 delay_us(1000);
0x080005A0 F44F707A  MOV      r0,#0x3E8
0x080005A4 F7FFFFD4  BL.W     delay_us (0x08000550)
    11:                 GPIO_SetBits(GPIOC,GPIO_Pin_All);
0x080005A8 F64F71FF  MOVW     r1,#0xFFFF
0x080005AC 4803      LDR      r0,[pc,#12]  ; @0x080005BC
0x080005AE F7FFFEF6  BL.W     GPIO_SetBits (0x0800039E)
    12:                 delay_us(1000);
0x080005B2 F44F707A  MOV      r0,#0x3E8
0x080005B6 F7FFFFCB  BL.W     delay_us (0x08000550)
     7:         while(1)
0x080005BA E7EC      B        0x08000596
0x080005BC 1000      DCW      0x1000
0x080005BE 4001      DCW      0x4001
0x080005C0 05E0      DCW      0x05E0
0x080005C2 0800      DCW      0x0800
0x080005C4 0000      DCW      0x0000
0x080005C6 2000      DCW      0x2000
0x080005C8 0004      DCW      0x0004
0x080005CA 0000      DCW      0x0000
0x080005CC 016C      DCW      0x016C
0x080005CE 0800      DCW      0x0800
0x080005D0 05E4      DCW      0x05E4
0x080005D2 0800      DCW      0x0800
0x080005D4 0004      DCW      0x0004
0x080005D6 2000      DCW      0x2000
0x080005D8 0664      DCW      0x0664
0x080005DA 0000      DCW      0x0000
0x080005DC 0188      DCW      0x0188
0x080005DE 0800      DCW      0x0800
0x080005E0 0000      MOVS     r0,r0
0x080005E2 0000      MOVS     r0,r0
0x080005E4 0000      MOVS     r0,r0
0x080005E6 0000      MOVS     r0,r0
0x080005E8 0000      MOVS     r0,r0
0x080005EA 0000      MOVS     r0,r0
0x080005EC 0000      MOVS     r0,r0
0x080005EE 0000      MOVS     r0,r0
0x080005F0 0000      MOVS     r0,r0
0x080005F2 0000      MOVS     r0,r0
0x080005F4 0000      MOVS     r0,r0
这是主函数的汇编代码 为什么最后全都是一样的

一周热门 更多>