[stm32] Start Tour-LED灯流水灯

如果觉得不错就点个赞吧~

目录

一  元件相关

二 面包板上的连线

三 具体代码


一  元件相关

需要准备元件:32板,杜邦线,跳线,几个LED灯,几个电阻,ST-Link,面包板

二 面包板上的连线

32和Link的连接我写在了另一篇中,需要的同学可以自己去看[stm32] Start Tour-LED灯闪烁

如图,把接LED的正极分别接到32板上的PA0~7,一个灯一个io口,随便选择,因为我的代码里面用上了GPIO_Pin_All。

负极统一接GND

 

三 具体代码

 

还有一些软件配置,LINK驱动问题由于过于麻烦,我就不细述了。 废话不多说,直接上代码

#include "stm32f10x.h"                 
#include "Delay.h"

int main(void)
{
	//GPIO初始化(选择外设)
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//开启时钟
	GPIO_InitTypeDef GPIO_InitStructure;//GPIO_InitStructure只是一个名字,随便起都行
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//用推挽输出
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;//定义所有端口都为那个输出模式
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	
	 
	while(1)
	{
		int i;
		for(i=0;i<2;i++)
		{
     GPIO_Write(GPIOA,~(0x0001<<i));
	   Delay_ms(500);
		}
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
#include <AT89x52.H> //#include <reg51.h> #define uchar unsigned char #define uint unsigned int uchar code hanzi[]; uchar code timer[11][16]; uchar code sw[]; void Show_word(); void Show_pass(); void Send_data(unsigned char *d); sbit resget=P0^7; sbit key_moda=P0^6; sbit key_up=P0^5; sbit key_Down=P0^4; sbit T_CLK=P0^2; sbit T_IO =P0^1; sbit T_RST=P0^0; sbit ACC0=ACC^0; sbit ACC7=ACC^7; uchar starts_time[7]={0x00,0x10,0x22,0x11,0x06,0x07,0x06}; uchar Move,Speed,Flicker,line,Sec,Cent,Hour,Year,Month,Day,Week; uchar a,b,f,h,msec,id,x; uint zimuo; uchar BUFF[10]; void RTInputByte(uchar); uchar RTOutputByte(void); void W1302(uchar, uchar); uchar R1302(uchar); void Set1302(uchar *); void du1302(); void DelayMs(void); void Set(uchar,uchar ); void in_data(); void rxd_data(); void main() { Move=0; zimuo=0; TMOD=0x01; TH0=0x3c; TL0=0xb0; EA=1; TR0=1; ET0=1; SCON=0; while(zimuo<512) { while(Move<16) { for(Speed=0;Speed<10;Speed++) { for(line=0;line<16;line++) { in_data(); rxd_data(); P2_4=1; DelayMs(); P2_7=1; P2=sw[line]; DelayMs(); } } Move++; } Move=0; zimuo=zimuo+32; } zimuo=0; while(1) { if(resget==0) { DelayMs(); if(resget==0) Set1302(starts_time); W1302(0x8e,0x00); W1302(0x90,0xa5); } du1302(); if (key_moda==0) { DelayMs(); if(key_moda==0) { if(id++==9) {id=0;} h=0;msec=0; while(key_moda==0){ Show_word();} } } if(id!=0) { if (key_up==0) { DelayMs(); if(key_up==0) { while(key_up==0) {Show_word();} h=0;msec=0; Set(id,0); } } if (key_Down==0) { DelayMs(); if(key_Down==0) { while(key_Down==0) {Show_word();} h=0;msec=0; Set(id,1); } } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟非颜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值