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--;
}
}
}
}
}
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 | |
【我踩过的那些坑】杜绑线问题被打赏50分 | |
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 | |
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 |