完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
我流水灯程序能亮了,但我试了一下全亮和全灭就出现以下问题,请各位大佬指教:
#include "STM32f10x.h" /** * @Brief Ö÷º¯Êý * @param ÎÞ * @retval ÎÞ */ #define LED1_TOGGLE GPIOA->ODR^=GPIO_Pin_0 #define LED1_OFF GPIOA->BSRR = GPIO_Pin_0 #define LED1_ON GPIOA->BRR = GPIO_Pin_0 #define LED2_TOGGLE GPIOA->ODR^=GPIO_Pin_1 #define LED2_OFF GPIOA->BSRR = GPIO_Pin_1 #define LED2_ON GPIOA->BRR = GPIO_Pin_1 #define LED3_TOGGLE GPIOA->ODR^=GPIO_Pin_2 #define LED3_OFF GPIOA->BSRR = GPIO_Pin_2 #define LED3_ON GPIOA->BRR = GPIO_Pin_2 #define LED4_TOGGLE GPIOA->ODR^=GPIO_Pin_3 #define LED4_OFF GPIOA->BSRR = GPIO_Pin_3 #define LED4_ON GPIOA->BRR = GPIO_Pin_3 #define LED5_OFF GPIO_SetBits(GPIOA,GPIO_Pin_4) #define LED5_ON GPIO_ResetBits(GPIOA,GPIO_Pin_4) #define LED6_OFF GPIO_SetBits(GPIOA,GPIO_Pin_5) #define LED6_ON GPIO_ResetBits(GPIOA,GPIO_Pin_5) #define LED7_OFF GPIO_SetBits(GPIOA,GPIO_Pin_6) #define LED7_ON GPIO_ResetBits(GPIOA,GPIO_Pin_6) #define LEDALL_OFF GPIO_SetBits(GPIOA,GPIO_Pin_All) #define LEDALL_ON GPIO_ResetBits(GPIOA,GPIO_Pin_All) void LED_Cfg(void){ GPIO_InitTypeDef led_gpio; SystemInit(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); led_gpio.GPIO_Pin = GPIO_Pin_All; led_gpio.GPIO_Mode = GPIO_Mode_Out_PP; led_gpio.GPIO_Speed = GPIO_Speed_50MHz;//2MHz GPIO_Init(GPIOA,&led_gpio); LED1_OFF; LED2_OFF; LED3_OFF; LED4_OFF; LED5_OFF; LED6_OFF; LED7_OFF; LEDALL_OFF; } void Delay(u32 nCount){ while(nCount--); } int main(void) { LED_Cfg(); while(1){ ---------------------------------- LEDALL_ON; Delay(6000000); LEDALL_OFF; Delay(6000000);这个烧录成功后不亮 ------------------------------------- ------------------------------------- 但以下这段代码可以亮 /*LED1_ON; LED2_ON; LED3_ON; LED4_ON; LED5_ON; LED6_ON; LED7_ON; Delay(6000000); LED1_OFF; LED2_OFF; LED3_OFF; LED4_OFF; LED5_OFF; LED6_OFF; LED7_OFF; Delay(6000000);*/ --------------------------------- } /* add your code here ^_^. */ } |
|
相关推荐
3个回答
|
|
|
#define LEDALL_OFF GPIO_SetBits(GPIOA,GPIO_Pin_All)
#define LEDALL_ON GPIO_ResetBits(GPIOA,GPIO_Pin_All) 查查手册,没有这个函数参数 |
|
|
|
|
|
GPIO_SetBits是对寄存器中的某一位或某几位进行操作,也就是只能控制1个或几个LED灯。一次性写入ODR寄存器的库函数是
GPIO_Write(GPIOA,0x0000) |
|
|
|
|
|
程序写的不对,应该写GPIO_Write(GPIOA,0x0000) 全灭,GPIO_Write(GPIOA,0xFFFF) 全开
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1328 浏览 1 评论
1070 浏览 0 评论
936 浏览 0 评论
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
5174 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
3974 浏览 1 评论
浏览过的版块 |
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-14 07:58 , Processed in 0.565348 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
30501