luorenxuan ARM DIY 进程帖-( ARM 和51单片机一样简单之 不一样的流水灯、程序)
 
					
				焊接中的 PCB .由于手里没有 0603封装的电阻电容,不过0805 封装的还是可以焊上去的

这样不就焊上去了-
今天调试的时候 才 发现把 LED 焊接反了。
没仔细看原理图,按照经验方式焊接,认为 限流电阻都是在 LED 的正极性。EEPW 的 开发板,限流电阻在LED 负极。
 
					
				 
					
				/*******************************************************************************************************
LED.H
*****************************************************************************************/
#ifndef __LED_H
#define __LED_H  
#include "sys.h"
 
//LED端口定义
#define LED3 PEout(2)//定义  PE 2为 LED3 IO 口 
#define LED4 PEout(3)//定义  PE 3为 LED4 IO 口   
#define LED5 PEout(4)//定义  PE 4为 LED5 IO 口 
#define LED6 PEout(5)//定义  PE 5为 LED6 IO 口
#define  ON 1
#define  OFF 0 
void LED_Init(void);//初始化           
#endif
/*******************************************************************************************************
LED.C
*****************************************************************************************/
#include <stm32f10x_lib.h>    
#include "led.h"
//LED IO初始化
void LED_Init(void)
{
 RCC->APB2ENR|=1<<6;    //使能PORTA时钟     
 GPIOE->CRL&=0XFF0000FF; 
 GPIOE->CRL|=0X00333300;//PE 2-5 推挽输出     
    GPIOE->ODR|=0xff;      //PE 输出高
             
}
/*******************************************************************************************************
key.h
*****************************************************************************************/
#ifndef __KEY_H
#define __KEY_H  
#include "sys.h"
#define S0 PAin(0) //定义 PA 0  为 S0 按键 WK_UP
#define S1 PFin(11) //定义 PF 11  为 S1 按键 
#define S2 PCin(13) //定义 PC 13  为 S2 按键 
void KEY_Init(void);//按键IO初始化
#endif
/*******************************************************************************************************
key.c
*****************************************************************************************/
#include <stm32f10x_lib.h>
#include "key.h"
#include "delay.h"
void KEY_Init(void)
{
 RCC->APB2ENR|=1<<2;     //  使能PORTA时钟
 GPIOA->CRL&=0XFFFFFFF0;//   清除PA0 状态   
 GPIOA->CRL|=0X00000008; //   PA0设置成输入   按键 WAKE UP
  
 RCC->APB2ENR|=1<<7;     //  使能PORTF时钟
 GPIOF->CRH&=0XFFFF0FFF;//   清除PF0 状态   
 GPIOF->CRH|=0X00008000; //   PF0设置成输入  
 GPIOF->ODR|=1<<11;  //PF11 上拉, 按键 S1
 RCC->APB2ENR|=1<<4;     //  使能PORTF时钟
 GPIOC->CRH&=0XFF0FFFFF;//   清除PF0 状态   
 GPIOC->CRH|=0X00800000; //   PF0设置成输入  
 GPIOC->ODR|=1<<13;  //PF11 上拉, 按键 S1
 
  
} 
/*******************************************************************************************************
main.c
*****************************************************************************************/
#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"  
#include "delay.h" 
#include "led.h" 
#include "key.h"   
   
main(void)
{   
 u8 t;   
 Stm32_Clock_Init(9); //系统时钟设置
 delay_init(72);      //延时初始化 
 LED_Init();      //初始化与LED连接的硬件接口
 KEY_Init();          //初始化与按键连接的硬件接口
 while(1)
 { 
       t=10;
     GPIOE->ODR=0xffff;   //PORT E 输出全高
    while(t!=0)
     {
     delay_ms(50);
     LED3=~LED3;
     t--;
     if(S0==1)break;
     }
    while(t!=10)
     {
     delay_ms(50);
     LED4=~LED4;
     t++;
     if(S0==1)break;
     }
    while(t!=0)
     {
     delay_ms(50);
     LED5=~LED5;
     t--;
     if(S0==1)break;
     }
    while(t!=10)
     {
     delay_ms(50);
     LED6=~LED6;
     t++;
     if(S0==1)break;
     }
     if(S0==1)
     { delay_ms(10);
     if(S0==1)
     { 
      t=5;
      while(t!=0)
       {
        LED3=LED4=LED5=LED6=ON;
        delay_ms(100);
        LED3=LED4=LED5=LED6=OFF;
        delay_ms(100);
        t--;
        }
        }
     }
 }  
}
回复
| 有奖活动 | |
|---|---|
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
| 送您一块开发板,2025年“我要开发板活动”又开始了! | |


 
			
			
			
						
			 我要赚赏金
 我要赚赏金 STM32
STM32 MCU
MCU 通讯及无线技术
通讯及无线技术 物联网技术
物联网技术 电子DIY
电子DIY 板卡试用
板卡试用 基础知识
基础知识 软件与操作系统
软件与操作系统 我爱生活
我爱生活 小e食堂
小e食堂

