完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
附件里面的C语言程序
我是要实现断短路测试,断路测试:F0,F4用一根线连接,拔掉线的一端,LED0亮,F1,F5用一根线连接,拔掉线的一端,LED1亮 ,F2,F6用一根线连接,拔掉线的一端,BEEP响,短路测试:短路F0和F1这两根线,LED0,LED1亮。短路F0和F2这两根线,LED0亮 ,BEEP响。短路F2和F1这两根线,LED1亮BEEP响。 现在的问题是: 先不管PF0,PF1,PF2, 就看F4,F5,F6,和LED0,LED1,BEEP F6: if(F6==1) { beep=1; } if(F6==0) { beep=1; } F6不就只有1和0,两种状态...1也响,0也响,你说他响不响 F4,F5也是一样,1也亮,0也亮,你说亮不亮 最后, 所以程序应该怎么改呢 |
|
相关推荐
3个回答
|
|
//F0,F1,F2先输出高电平给F4,F5,F6
GPIO_SetBits(GPIOF,GPIO_Pin_0); GPIO_SetBits(GPIOF,GPIO_Pin_1); GPIO_SetBits(GPIOF,GPIO_Pin_2); //逻辑判断如下给参考 if(F6==0)&&(F5==0)&&(F4==0) //三条线都断开 { beep = 1; LED0 = 0; LED1 = 0; } else if(F6==0)&&(F5!=0)&&(F4!=0) //只有F6这条断开 { beep = 1; } else if(F6!=0)&&(F5==0)&&(F4!=0)//只有F5这条断开 { LED0 = 0; } else if(F6!=0)&&(F5!=0)&&(F4==0)//只有F5这条断开 { LED1 = 0; } else if(F6==0)&&(F5==0)&&(F4!=1)//只有F6,F5这2条断开 { } else if(F6!=0)&&(F5==0)&&(F4==0)//只有F5,F4这2条断开 { } else if(F6==0)&&(F5!=0)&&(F4==0)//只有F6,F4这2条断开 { } |
|
|
|
这是我的错误代码
//led.h头文件 #ifndef __LED_H #define __LED_H #include "sys.h" #define F4 PFin (4) #define F5 PFin (5) #define F6 PFin (6) #define F0 PFout (0) #define F1 PFout (1) #define F2 PFout (2) #define beep PFout (8) #define LED0 PFout (9) #define LED1 PFout (10) void LED_Init(void); #endif //led.c源文件 #include "led.h" void LED_Init(void) { GPIO_InitTypeDef GPIO_Initstructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE); GPIO_Initstructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_0|GPIO_Pin_1; GPIO_Initstructure.GPIO_Mode =GPIO_Mode_OUT; GPIO_Initstructure.GPIO_OType = GPIO_OType_PP; GPIO_Initstructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Initstructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOF,&GPIO_Initstructure); GPIO_Initstructure.GPIO_Pin = GPIO_Pin_9; GPIO_Initstructure.GPIO_Mode =GPIO_Mode_OUT; GPIO_Initstructure.GPIO_OType = GPIO_OType_PP; GPIO_Initstructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Initstructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOF,&GPIO_Initstructure); LED0 = 1; GPIO_Initstructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_4|GPIO_Pin_5; GPIO_Initstructure.GPIO_Mode =GPIO_Mode_IN; GPIO_Initstructure.GPIO_OType = GPIO_OType_PP; GPIO_Initstructure.GPIO_PuPd = GPIO_PuPd_DOWN; GPIO_Initstructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOF,&GPIO_Initstructure); GPIO_Initstructure.GPIO_Pin = GPIO_Pin_10; GPIO_Initstructure.GPIO_Mode =GPIO_Mode_OUT; GPIO_Initstructure.GPIO_OType = GPIO_OType_PP; GPIO_Initstructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Initstructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOF,&GPIO_Initstructure); LED1 = 1; //main.c文件 #include "led.h" #include "delay.h" #include "usart.h" #include "beep.h" int main(void) { uint8_t tmp=0; delay_init(168); LED_Init(); BEEP_Init(); while(1) { GPIO_SetBits(GPIOF,GPIO_Pin_2); GPIO_SetBits(GPIOF,GPIO_Pin_0); GPIO_SetBits(GPIOF,GPIO_Pin_1); if(F6==0) { beep=1; } if(F4==0) { LED0 = 0; } if(F5==0) { LED1 = 0; } GPIO_SetBits(GPIOF,GPIO_Pin_0); GPIO_ResetBits(GPIOF,GPIO_Pin_1); GPIO_ResetBits(GPIOF,GPIO_Pin_2); if(F6==1) { LED0 = 0; beep = 1; } if(F5==1) { LED0 = 0; LED1 = 0; } GPIO_ResetBits(GPIOF,GPIO_Pin_0); GPIO_SetBits(GPIOF,GPIO_Pin_1); GPIO_ResetBits(GPIOF,GPIO_Pin_2); if(F6==1) { LED1 = 0; beep = 1; } } } |
|
|
|
老哥,又遇到你,你这是断路程序,还有后面短路程序,而且
GPIO_SetBits(GPIOF,GPIO_Pin_0); GPIO_ResetBits(GPIOF,GPIO_Pin_1); GPIO_ResetBits(GPIOF,GPIO_Pin_2); if(F6==1) { LED0 = 0; beep = 1; } 然后在判断条件GPIO_ResetBits(GPIOF,GPIO_Pin_0); GPIO_SetBits(GPIOF,GPIO_Pin_1); GPIO_ResetBits(GPIOF,GPIO_Pin_2); if(F6==1) { LED1 = 0; beep = 1; } 怎样让这两个程序不要一起运行,就是当if(F6==1),不要两部分一起运行,执行完第一条 IF语句,然后重新赋值,GPIO_ResetBits(GPIOF,GPIO_Pin_0); GPIO_SetBits(GPIOF,GPIO_Pin_1); GPIO_ResetBits(GPIOF,GPIO_Pin_2);判断IF执行第二条,不要当if(F6==1)的时候,LED1,LED0 BEEP 同时亮和响,而没有进行赋值。 |
|
|
|
只有小组成员才能发言,加入小组>>
请问下图大疆lightbridge2遥控器主板电源芯片型号是什么?
4442 浏览 1 评论
使用常见的二极管、三极管和mos做MCU和模组的电平转换电路,但是模组和MCU无法正常通信,为什么?
313浏览 2评论
为了提高USIM卡电路的可靠性和稳定性,在电路设计中须注意的点有哪些?
297浏览 2评论
312浏览 2评论
314浏览 2评论
352浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 06:07 , Processed in 0.912679 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号