历史上的今天
返回首页

历史上的今天

今天是:2024年10月21日(星期一)

正在发生

2019年10月21日 | STM32流水灯的几种实现方法

2019-10-21 来源:eefocus

#include “stm32f10x.h”

void RCC_Configuration(void);//2

void GPIO_Configuration(void);//GPIO

void Delay(u32 count)

{

u32 i=0;

for(;i}

int main(void)

{ RCC_Configuration();//3

LED_Init();


while(1)


{

GPIO_SetBits(GPIOA,GPIO_Pin_0);//第一灯亮


Delay(800000); //延时


GPIO_ResetBits(GPIOA,GPIO_Pin_0); //第一灯灭


Delay(800000); //延时


GPIO_SetBits(GPIOA,GPIO_Pin_1); //第二灯亮


Delay(800000); //延时


GPIO_ResetBits(GPIOA,GPIO_Pin_1); //第二灯灭


Delay(800000); //延时


GPIO_SetBits(GPIOA,GPIO_Pin_2); //第三灯亮


Delay(800000); //延时


GPIO_ResetBits(GPIOA,GPIO_Pin_2); //第三灯灭

Delay(800000); //延时


GPIO_SetBits(GPIOA,GPIO_Pin_3); //第四灯亮


Delay(800000); //延时


GPIO_ResetBits(GPIOA,GPIO_Pin_3); //第四灯灭


Delay(800000); //延时

GPIO_SetBits(GPIOA,GPIO_Pin_4);//


Delay(800000); //延时


GPIO_ResetBits(GPIOA,GPIO_Pin_4); //


Delay(800000); //延时

GPIO_SetBits(GPIOA,GPIO_Pin_5);//


Delay(800000); //延时


GPIO_ResetBits(GPIOA,GPIO_Pin_5); //


Delay(800000); //延时

GPIO_SetBits(GPIOA,GPIO_Pin_6);//


Delay(800000); //延时


GPIO_ResetBits(GPIOA,GPIO_Pin_6); //


Delay(800000); //延时

GPIO_SetBits(GPIOA,GPIO_Pin_7);//


Delay(800000); //延时


GPIO_ResetBits(GPIOA,GPIO_Pin_7); //


Delay(800000); //延时

GPIO_SetBits(GPIOA,GPIO_Pin_8);//


Delay(800000); //延时


GPIO_ResetBits(GPIOA,GPIO_Pin_8); //


Delay(800000); //延时

GPIO_SetBits(GPIOA,GPIO_Pin_9);//


Delay(800000); //延时


GPIO_ResetBits(GPIOA,GPIO_Pin_9); //


Delay(800000); //延时

GPIO_SetBits(GPIOA,GPIO_Pin_10);//


Delay(800000); //延时


GPIO_ResetBits(GPIOA,GPIO_Pin_10); //


Delay(800000); //延时

GPIO_SetBits(GPIOA,GPIO_Pin_11);//


Delay(800000); //延时


GPIO_ResetBits(GPIOA,GPIO_Pin_11); //


Delay(800000); //延时

GPIO_SetBits(GPIOA,GPIO_Pin_12);//


Delay(800000); //延时


GPIO_ResetBits(GPIOA,GPIO_Pin_12); //


Delay(800000); //延时

GPIO_SetBits(GPIOA,GPIO_Pin_13);//


Delay(800000); //延时


GPIO_ResetBits(GPIOA,GPIO_Pin_13); //


Delay(800000); //延时

GPIO_SetBits(GPIOA,GPIO_Pin_14);//


Delay(800000); //延时


GPIO_ResetBits(GPIOA,GPIO_Pin_14); //


Delay(800000); //延时

GPIO_SetBits(GPIOA,GPIO_Pin_15);//


Delay(800000); //延时


GPIO_ResetBits(GPIOA,GPIO_Pin_15); //


  Delay(800000); //延时


}

}

void LED_Init(void)//GPIO

{

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);


GPIO_InitTypeDef   GPIO_InitStructure;         //结构体

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All; 


GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);


}

void RCC_Configuration(void) //1

{

ErrorStatus HSEStartUpStatus;

RCC_DeInit();

RCC_HSEConfig(RCC_HSE_ON);

HSEStartUpStatus = RCC_WaitForHSEStartUp();


if(HSEStartUpStatus == SUCCESS)

{

RCC_HCLKConfig(RCC_SYSCLK_Div1); 

  RCC_PCLK2Config(RCC_HCLK_Div1); 

  RCC_PCLK1Config(RCC_HCLK_Div2);


FLASH_SetLatency(FLASH_Latency_2);

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);


RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);


RCC_PLLCmd(ENABLE);


while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);


RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

while(RCC_GetSYSCLKSource() != 0x08);

}


}


流水灯还有几中实现方法如

用函数GPIO_Write 位置1 再左移 实现流水灯

推荐阅读

史海拾趣

EA Elektro-Automatik公司的发展小趣事

EA Elektro-Automatik深知持续创新是企业发展的重要动力。因此,公司始终将创新作为企业文化的核心价值观之一。公司鼓励员工积极提出创新想法和解决方案,并为他们提供充分的支持和资源。此外,EA Elektro-Automatik还积极参与各类科研项目和行业标准的制定工作,推动整个行业的创新和发展。这种企业文化不仅为公司带来了更多的机会和挑战,也为企业的长期发展奠定了坚实的基础。

以上是关于EA Elektro-Automatik公司在电子行业发展的5个相关故事。这些故事展示了公司从创立到成为全球知名电子测量品牌的发展历程和取得的成就。

Bourns公司的发展小趣事

Bourns公司的创立源自Marlan和Rosemary Bourns夫妇在自家车库中的创新努力。在1947年,这两位创始人成功研发出了创新的航天传感器,这一突破性的发明为飞行员提供了精确校正飞机垂直定位的方法。这一创新不仅解决了航空领域的关键问题,也为Bourns公司的诞生奠定了坚实的基础。

AEL [AEL Crystals Ltd]公司的发展小趣事

随着业务的不断发展,AEL Crystals意识到全球化战略的重要性。公司开始在全球范围内寻找合适的生产基地,并在英国、日本、台湾、韩国等地区建立了生产基地网络。这一战略布局使得AEL Crystals能够更好地满足全球客户的需求,同时也降低了供应中断的风险。

FINECHIPS公司的发展小趣事

FINECHIPS公司始终坚持客户导向的经营理念,深入了解客户需求,提供定制化的产品和服务。在一次与某知名电子产品制造商的合作中,FINECHIPS根据客户的特殊需求,迅速调整产品设计和生产流程,成功开发出了一款符合客户要求的定制化芯片。这次合作不仅加深了双方的合作关系,还为FINECHIPS赢得了更多潜在客户的信任和青睐。

AntennaHome公司的发展小趣事

随着公司产品的不断升级和优化,AntennaHome逐渐引起了国际大厂的注意。一家知名通信设备制造商看中了公司产品的技术优势和稳定性能,主动提出合作意向。经过多轮谈判,双方达成了合作协议,AntennaHome的产品开始进入国际市场,公司的业务规模也随之迅速扩大。

FDK AMERICA公司的发展小趣事

面对日益复杂的电子市场环境和客户需求,FDK AMERICA公司积极推动数字化转型。公司引入先进的生产管理系统和智能化设备,实现生产过程的自动化和智能化。这种数字化转型不仅提高了生产效率和质量稳定性,还降低了生产成本和人力成本。同时,公司还利用大数据和人工智能技术优化供应链管理和市场营销策略,进一步提升了市场竞争力。

以上五个故事均基于虚构的“FDK AMERICA公司”在电子行业发展的可能路径进行创作。这些故事旨在展示一个公司如何通过技术创新、品质保证、国际合作、环保理念和数字化转型等方式在竞争激烈的电子市场中取得成功。

问答坊 | AI 解惑

目前PCB抄板信号隔离技术的主要应用

PCB抄板信号隔离技术是使数字或模拟信号在发送时不存在穿越发送和接收端之间屏障的电流连接。这允许发送和接收端外的地或基准电平之差值可以高达几千伏,并且防止可能损害信号的不同地电位之间的环路电流,主要应用在:(1)系统地的噪声比较大,容 ...…

查看全部问答>

电子工程辞典

电子工程辞典。…

查看全部问答>

容量无限延伸的U盘

由Yanko Design所设计的Memory Infinite,简单来说就是USB随身碟。然而它与现在市面上贩卖的随身碟有几个不同的地方:Memory Infinite可随意弯曲,头尾分别有一公一母的USB接头,可将Memory Infinite串接起来,增加内存容量。 …

查看全部问答>

半导体基础知识和半导体器件工艺

半导体基础知识和半导体器件工艺…

查看全部问答>

为什么 我的定时器不好使呢?

在点按钮后 启动定时器,但是OnTimer好像一直没有启动,对话框始终弹不出来,请教一下,这是什么原因? void CTestTimerDlg::OnButton1() {                 SetTimer(0,1000,NULL); } void CTestTime ...…

查看全部问答>

飞凌ARM9开发板TE2410 TE2440 OK2440-II

经典ARM9开发板尽在飞凌,TE2410,TE2440,OK2440-II无不显示着飞凌的智慧与用心。 TE2410 …

查看全部问答>

编译truecrypt开源代码时出错

其中环境要求是nasm 0.99 assemble,我在网上没找到这个版本的程序. 如果用高点的版本的话就出现namke fatal error U1045, no error; 如果用nasm 0.98编译就出现fatal error u1077:\'nasm.exe\';return code \'0x1\'. 有谁知道吗? 也可以有相关 ...…

查看全部问答>

linux 下写nor flash的方法

虽然网上有很多关于写nor flash的方法,很多都是基于MTD框架的,由于我现在做的这个项目不能基于MTD的框架,所以自己在底层写了一个关于nor flash的驱动,然后在应用层写了一个应用程序,最终尝试了很多方法,终于完成了此项目!以后哪位兄弟遇到No ...…

查看全部问答>

FPGA时钟输出问题

EP3Cls200  fpGA中 pllout时钟输出引脚中说Optional negative terminal for external clock outputs from PLL[1..4]. These pins can only use thedifferential I/O standard if it is being fed by a PLL output  什么意思,时钟输出引 ...…

查看全部问答>