历史上的今天
返回首页

历史上的今天

今天是:2025年04月11日(星期五)

正在发生

2019年04月11日 | STM32F1x系列——跑马灯实验-库函数

2019-04-11 来源:eefocus

        今天根据网上的教程实现了STM32F1系列单片机的跑马灯实验,首先主要分为三个步骤:


(1)使能IO口时钟,调用函数RCC_APB2PeriphClockCmd();不同的IO口,调用的使能时钟不一样


(2)初始化IO口模式。调用函数GPIO_Init();


(3)操作IO口,输出高低电平。GPIO_SetBits();GPIO_ResetBits();


         新建一个样板工程,在工程添加文件夹HAREWARE,并在文件夹添加LED(名字自取)的.c和.h文件,按照上述的步骤,依次添加步骤。


      LED.h:



#ifndef __LED_H_

#define __LED_H_

 

void LED_Init(void) ;   //初始化

 

 

#endif


      LED.c:



#include "LED.h"

#include "stm32f10x.h"

 

void LED_Init(void) 

{

GPIO_InitTypeDef  GPIO_InitStr ;


RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);   //GPIOD

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);   //GPIOA


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

GPIO_InitStr.GPIO_Pin = GPIO_Pin_2 ;   

GPIO_InitStr.GPIO_Speed = GPIO_Speed_50MHz ;

GPIO_Init(GPIOD,&GPIO_InitStr) ;

GPIO_SetBits(GPIOD,GPIO_Pin_2) ;  //设置高电平


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

GPIO_InitStr.GPIO_Pin = GPIO_Pin_8 ;   

GPIO_InitStr.GPIO_Speed = GPIO_Speed_50MHz ;

GPIO_Init(GPIOA,&GPIO_InitStr) ;

GPIO_SetBits(GPIOA,GPIO_Pin_8) ;  //设置高电平

 


}

      在main函数中,执行操作,对LED设置高低电平,让其闪烁,并且加上延时函数:


#include "stm32f10x.h"

#include "LED.h"

#include "delay.h"

 

 

int main(void)

{

   delay_init();

LED_Init();

 

while(1)

{

GPIO_SetBits(GPIOD,GPIO_Pin_2) ;   //高电平  熄灭

GPIO_SetBits(GPIOA,GPIO_Pin_8) ;

delay_ms(500) ;

 

GPIO_ResetBits(GPIOD,GPIO_Pin_2) ;  //低电平 点亮

GPIO_ResetBits(GPIOA,GPIO_Pin_8) ;

delay_ms(500) ;  

 

}

 

}

        就这样,基于STM32F1x系列单片机的简单跑马灯实验便做好了,接下来继续学习STM32F1x系列其他知识,加油!

推荐阅读

史海拾趣

Diotec Electronics Corp公司的发展小趣事

面对全球化的市场趋势,Diotec开始实施全球化战略。公司加强与国际市场的联系,积极开拓海外市场。同时,Diotec还加强与全球合作伙伴的合作,共同推动电子行业的发展。展望未来,Diotec将继续坚持技术创新和品质至上的理念,致力于成为全球领先的电子元器件供应商。同时,公司还将关注新兴市场和技术趋势,为未来的发展做好充分准备。

Dawn Electronics Inc公司的发展小趣事

随着业务的不断扩张,Dawn Electronics Inc公司意识到供应链管理的重要性。公司加强了与供应商的合作,建立了稳定的供应链体系,确保原材料的质量和供应的稳定性。同时,公司还优化了生产流程,提高了生产效率和产品质量。这些措施有效地降低了成本,提高了公司的竞争力。

AIC [Analog Intergrations Corporation]公司的发展小趣事

在技术创新的基础上,Dawn Electronics Inc公司开始积极拓展市场。公司加强了与国内外客户的合作,通过提供优质的产品和服务,赢得了客户的信任和支持。同时,公司还注重品牌建设,积极参与行业展会和交流活动,提高了品牌知名度和影响力。这些努力为公司赢得了更多的市场份额和合作机会。

Aptiv公司的发展小趣事

作为一家具有社会责任感的企业,Aptiv始终关注社会公益事业。公司积极参与各项社会活动和慈善捐赠,为改善社会环境和提升公众生活质量做出了积极贡献。同时,Aptiv还注重在运营所在城市推动社区发展,通过创造就业岗位、支持教育事业等方式,为当地社会经济的繁荣做出了贡献。

BESTECH公司的发展小趣事

在国内市场取得一定成绩后,Calex Mfg. Co., Inc.开始积极拓展海外市场。公司制定了全球化战略,通过参加国际展会、建立海外销售网络等方式,不断开拓国际市场。同时,公司还根据不同地区的市场需求,推出定制化的产品和服务,进一步提升了其在国际市场中的竞争力。

Axiomtek公司的发展小趣事

品质是Calex Mfg. Co., Inc.的生命线。公司始终坚持以品质为核心,从原材料采购到生产制造,再到产品出厂,每一个环节都严格把控。这种对品质的执着追求,使得公司的产品赢得了客户的信赖和好评。同时,公司还注重品牌建设,通过广告宣传和参展等方式,不断提升品牌知名度和影响力。

问答坊 | AI 解惑

蓄电池过放电

请教各位大虾,有没有保护蓄电池过放电的方案或者产品?…

查看全部问答>

印制板设计规范

印制板设计规范…

查看全部问答>

不用变压器降压 这样可以吗

问题见题目 我的台灯坏了  主控全部掉进了水里 不好修  就干脆自己做一个感应台灯 但是能力上有差距 目前大二 学测控的 麻烦看看这俩个地方  谢谢 …

查看全部问答>

28c64与28c64b有什么区别呢?

我在一个项目设计中用到E2PROM存储,用的是atmel的28c64系列,同样的电路,用28C64可以保存下来上次断电前的输入内容,但是用到26C64B就无法保存,有谁能告诉我这是什么原因不?…

查看全部问答>

flash文件系统

想开发flash的文件系统,迫切需要一切资料和参考源代码,FAT32的,请大家给提供点,谢谢…

查看全部问答>

液晶模块求救

各位前辈,我是一个大四的学生,毕业设计内容要求用到液晶显示。购买了一块北京青云的LCM12864B(控制器KS0107),自己焊接上了排针,上电后毫无反应,开、关模块没有问题。但送出数据后不显示,后来想送数后再读进来,发现不对。请问是不是模块坏 ...…

查看全部问答>

谁从TI的网店那里订购的EXP430-G2收到了吗?

收到的朋友,感觉这个系列的片子怎么样啊?…

查看全部问答>

自己设计的移动电源

换手机了,这个电池不经用啊,于是想做个移动电源出来。 现在手机充电几乎都可以用USB口充电,于是就设计成USB口形式,电池选用三洋的2600毫安锂电池(笔记本电芯就这电池,超强,网上几十块钱吧),3.7V的电压,充电电压为4.2V。 首先是DCDC放电 ...…

查看全部问答>

上班空闲时,你都在干什么?

快过年了,有些人也走了,公司显得有点冷清。 仔细看过去,研发人员还是一直的忙碌,生产维护的也在埋头苦干,那么那些、财务、行政等后勤人员,都在干什么呢?按理说年底,他们的事情很少,那他们来上班,都在干什么事情?若没事情,还不如让他 ...…

查看全部问答>

Quartus II 9.0中用模块化进行设计,使用ROM做存储器,为什么编译老是在ROM这块出错?

Quartus II 9.0中用模块化进行设计,使用ROM做存储器,为什么编译老是在ROM这块出错。我设置的ROM是6位地址输入,24位数据输出,同时还指定好了MIF文件,但是连接好原理图后,编译老是提示与ROM输出的线出错,即Error: Port \"G2AN\" of type 74138 ...…

查看全部问答>