野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15895|回复: 14

光盘流水灯程序修改后不运行

[复制链接]
发表于 2014-10-5 20:52:37 | 显示全部楼层 |阅读模式
你好!我把光盘的流水灯程序修改后,只有两个灯亮,不知什么原因?修改代码如下:
void LED_GPIO_Config(void)
{               
                GPIO_InitTypeDef GPIO_InitStructure;
                RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE);
                                          
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;       
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                GPIO_Init(GPIOB, &GPIO_InitStructure);       
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
                GPIO_Init(GPIOC, &GPIO_InitStructure);
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
                GPIO_Init(GPIOC, &GPIO_InitStructure);       
                GPIO_SetBits(GPIOB, GPIO_Pin_0);
                GPIO_SetBits(GPIOC, GPIO_Pin_3|GPIO_Pin_5);         

#define LED1(a)        if (a)        \
                                        GPIO_SetBits(GPIOB,GPIO_Pin_0);\
                                        else                \
                                        GPIO_ResetBits(GPIOB,GPIO_Pin_0)

#define LED2(a)        if (a)        \
                                        GPIO_SetBits(GPIOC,GPIO_Pin_3);\
                                        else                \
                                        GPIO_ResetBits(GPIOC,GPIO_Pin_3)

#define LED3(a)        if (a)        \
                                        GPIO_SetBits(GPIOC,GPIO_Pin_5);\
                                        else                \
                                        GPIO_ResetBits(GPIOC,GPIO_Pin_5)
望多多指教,多谢!
回复

使用道具 举报

发表于 2014-10-5 21:22:04 | 显示全部楼层
ISO板流水灯接口是C3,C4,C5,迷你板接口是B0,C3,C4.你设置的是B0,C3,C5。不知道是不是这个问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-5 21:24:13 | 显示全部楼层
ne LED1(a)        if (a)        \
                                        GPIO_SetBits(GPIOB,GPIO_Pin_0);\
                                        else                \
                                        GPIO_ResetBits(GPIOB,GPIO_Pin_0)

#define LED2(a)        if (a)        \
                                        GPIO_SetBits(GPIOC,GPIO_Pin_1);\
                                        else                \
                                        GPIO_ResetBits(GPIOC,GPIO_Pin_1)

#define LED3(a)        if (a)        \
                                        GPIO_SetBits(GPIOC,GPIO_Pin_2);\
                                        else                \
                                        GPIO_ResetBits(GPIOC,GPIO_Pin_2)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-5 21:24:36 | 显示全部楼层
这是光盘的原程序
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-5 21:26:32 | 显示全部楼层
具体什么板,我也不知道,5\6月分花300多买的学习板
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-5 21:27:15 | 显示全部楼层
#define LED1(a)        if (a)        \
                                        GPIO_SetBits(GPIOB,GPIO_Pin_0);\
                                        else                \
                                        GPIO_ResetBits(GPIOB,GPIO_Pin_0)

#define LED2(a)        if (a)        \
                                        GPIO_SetBits(GPIOC,GPIO_Pin_1);\
                                        else                \
                                        GPIO_ResetBits(GPIOC,GPIO_Pin_1)

#define LED3(a)        if (a)        \
                                        GPIO_SetBits(GPIOC,GPIO_Pin_2);\
                                        else                \
                                        GPIO_ResetBits(GPIOC,GPIO_Pin_2)
是光盘原程序
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-5 21:31:16 | 显示全部楼层
你好,我换成B0,C3,C4了,还是不行.请多指教
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-5 21:32:03 | 显示全部楼层
我只修改了led.c和led.h两个文件,其他的没修改
回复 支持 反对

使用道具 举报

发表于 2014-10-5 23:11:34 | 显示全部楼层
看我的截图,GPIO配置里面你就点亮了两个灯,它要是亮3个灯才怪了!
好歹你发一下你主程序是怎么运行的吧?
捕获.JPG
回复 支持 反对

使用道具 举报

发表于 2014-10-6 11:16:18 | 显示全部楼层
你不发硬件电路连线,神也不知道问什么不亮
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-6 11:35:05 | 显示全部楼层
int main(void)
{
/* LED ¶Ë¿Ú³õʼ»¯ */
LED_GPIO_Config();  

/* ·½·¨2£¬Ê¹Óù̼þ¿â¿ØÖÆIO */
while (1)
{
  LED1( ON );     // ÁÁ
  Delay(0x0FFFFF);
  LED1( OFF );    // Ãð
  LED2( ON );     // ÁÁ
  Delay(0x0FFFFF);
  LED2( OFF );    // Ãð
  LED3( ON );     // ÁÁ
  Delay(0x0FFFFF);
  LED3( OFF );    // Ãð   
}
}
void Delay(__IO uint32_t nCount)  //¼òµ¥µÄÑÓʱº¯Êý
{
for(; nCount != 0; nCount--);
}
/*********************************************END OF FILE**********************/
是主函数

回复 支持 反对

使用道具 举报

发表于 2014-10-6 11:48:27 | 显示全部楼层
板子配套的程序直接下载是可以用的,你对比一下你修改的程序跟原来的程序有什么不同就好了
回复 支持 反对

使用道具 举报

发表于 2014-10-6 12:47:55 | 显示全部楼层
那什么,这么简单的程序,也和流水灯例程一样...
你只是改了一下软件GPIO接口,但是硬件呢?你要看你电路板上面3个灯分别接了哪3个管脚,软件和硬件要对应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-6 18:28:13 | 显示全部楼层
看了电路,我用的是彩色mini,只有pb0\pc3\pc4连接指示灯,用其他引脚必须外扩.
回复 支持 反对

使用道具 举报

发表于 2014-10-7 01:00:25 | 显示全部楼层
你都说了硬件连接是PC3、PC4,可你程序里写的是PC3、PC5啊,是不是这个原因?
捕获.JPG
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 13:41 , Processed in 0.042958 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表