历史上的今天
返回首页

历史上的今天

今天是:2025年04月22日(星期二)

正在发生

2020年04月22日 | STM32固件库实现led亮灭闪烁和音频发生器设计

2020-04-22 来源:eefocus

概述

本文使用STM32F10X,软件为Keil uVision5,仿真软件Proteus 8 Professional


电路图

电路图

8个led亮灭实现代码

实现代码


//8¸öledÈ«ÁÁÈ«Ãð

#include "stm32f10x.h"

int main()

{


GPIO_InitTypeDef star;

//配置开启GPIO时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

//设置GPIO输出模式

    //stm32F1提供了4种输出模式(推挽输出、开漏输出 、复用推挽输出 、复用开漏输出)和3种输出速度;一般配置LED采用推挽输出;

star.GPIO_Pin =GPIO_Pin_All;

star.GPIO_Speed =GPIO_Speed_50MHz;设置IO速率

star.GPIO_Mode =GPIO_Mode_Out_PP;//设置推挽输出模式

//初始化

GPIO_SetBits(GPIOB,GPIO_Pin_All);

GPIO_Init(GPIOB,&star);

//第一种方法

GPIO_Write(GPIOB,0xff00);

//第二种方法

while(1)

{

// GPIO_ResetBits(GPIOB,GPIO_Pin_8);

// GPIO_ResetBits(GPIOB,GPIO_Pin_9);

// GPIO_ResetBits(GPIOB,GPIO_Pin_10);

// GPIO_ResetBits(GPIOB,GPIO_Pin_11);

// GPIO_ResetBits(GPIOB,GPIO_Pin_12);

// GPIO_ResetBits(GPIOB,GPIO_Pin_13);

// GPIO_ResetBits(GPIOB,GPIO_Pin_14);

// GPIO_ResetBits(GPIOB,GPIO_Pin_15);

//

}

}


8个led闪烁实现代码

实现代码


#include"stm32f10x.h"

void Delay(unsigned int count)  

{

unsigned int i;

for(;count!=0;count--)

{

i=5000;

while(i--);

}

}

 int main()

{

GPIO_InitTypeDef strs;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

strs.GPIO_Pin = GPIO_Pin_All;

strs.GPIO_Speed = GPIO_Speed_50MHz;

strs.GPIO_Mode=GPIO_Mode_Out_PP;

GPIO_Init(GPIOB,&strs);

 

while(1)

{

GPIO_ResetBits(GPIOB, GPIO_Pin_All);

Delay(100);

  GPIO_SetBits(GPIOB,GPIO_Pin_All);

Delay(100);

}

}


音频发生器

电路图

电路图

实现代码


#include "stm32f10x.h"

void Delay(unsigned int count)   //ÑÓʱº¯Êý

{

unsigned int i;

for(;count!=0;count--)

{

i=5000;

while(i--);

}

}

int main(void)

{

GPIO_InitTypeDef  GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能GIPOC时钟

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //PC5引脚配置

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //配置PC5为推免输出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   //GPIOB速度为50MHz

    GPIO_Init(GPIOC, &GPIO_InitStructure); //初始化PC5

GPIO_SetBits(GPIOC,GPIO_Pin_5); //PC5输出高电平,LED熄灭

while(1)

{

GPIO_ResetBits(GPIOC,GPIO_Pin_5); //PC5输出低电平

Delay(10); //延迟,保持低电平一段时间

GPIO_SetBits(GPIOC,GPIO_Pin_5); //PC5输出高电平

Delay(10); //延迟,保持高电平一段时间

}

}


学习笔记

输入:上拉输入,下拉输入,浮空输入,模拟输入


输出:通用推挽输出,通用开漏输出,复用推挽输出,复用开漏输出


首先开启GPIO时钟,然后设置GPIO输出模式为推挽输出,接着初始化led


GPIO_ResetBits(GPIOC,GPIO_Pin_0);//PAO=0 ,输出低电平


GPIO_SetBits(GPIOC,GPIO_Pin_0);//PAO=1,输出高电平

推荐阅读

史海拾趣

FWBELL公司的发展小趣事
将检测到的温度信号与预设的温度阈值进行比较。这通常通过电压比较器实现,比较器的输出信号会根据温度与阈值的关系变化。
Cantec Electronic Co Ltd公司的发展小趣事

Cantec Electronic Co Ltd最初只是电子产业链中的一家小公司,专注于生产电子元器件。然而,在一次偶然的技术研发中,公司成功开发出了一种新型的节能芯片,这一技术突破使得公司的产品在市场上大受欢迎。随着订单量的不断增加,公司逐渐扩大了生产规模,提升了研发实力,开始在电子行业中崭露头角。

3L Electronic Corporation公司的发展小趣事

3L Electronic Corporation深知人才是企业发展的根本。因此,公司注重人才培养和团队建设,为员工提供丰富的培训和发展机会。通过引进优秀人才和建立激励机制,公司形成了一支高效、专业的团队,为公司的持续创新和发展提供了有力保障。

CETC公司的发展小趣事

为了进一步提升公司的国际影响力,CETC开始积极布局海外市场。公司先后在美国、欧洲等地设立了研发中心和分支机构,与当地企业开展深度合作,共同研发适应市场需求的产品。同时,CETC还积极参加国际电子展会和论坛,展示公司的最新技术和产品,吸引了众多国际客户的关注。通过这些努力,CETC成功打开了海外市场的大门,为公司的长远发展注入了新的动力。

ENTRELECUK公司的发展小趣事

ENTRELEC UK深知品质对于企业的重要性,因此公司始终坚持严格的质量管理体系。从原材料采购到产品制造,再到售后服务,每一个环节都经过严格把关。这种对品质的执着追求使ENTRELEC UK赢得了客户的信任和好评。公司还建立了完善的客户服务体系,确保客户在使用产品过程中得到及时、有效的支持。

ept Connectors公司的发展小趣事

随着全球环保意识的不断提高,EPT Connectors公司也开始关注环保和可持续发展问题。公司积极采取各种措施减少生产过程中的污染和浪费,并推出了一系列环保型连接器产品。同时,EPT还积极参与各种环保活动和社会公益事业,以实际行动践行企业的社会责任。这些举措不仅提升了EPT的品牌形象和社会声誉,也为其未来的发展注入了新的动力。

问答坊 | AI 解惑

机器人 转一个国外的机器人项目

http://66.249.89.132/translate_c?hl=zh-CN&sl=en&u=http://www.robotroom.com/Jet.html&prev=/search%3Fq%3DC51%2Bcompiler%26hl%3Dzh-CN%26client%3Daff-cs-360se%26hs%3Dbtg%26sa%3DN%26start%3D50%26newwindow%3D1&usg=ALkJrhhLTO9Bj7aM9-ySHE ...…

查看全部问答>

PCB设计注意事项

  一.焊盘重叠 焊盘(除表面贴装焊盘外)的重叠,也就是孔的重叠放置,在钻孔时会因为在一处多钻孔导致断钻头、导线损伤。 二.图形层的滥用 1. 违反常规设计,如元件面设计在BOTTOM层,焊接面设计在TOP,造成文件编辑时正反面错误。 2. PCB ...…

查看全部问答>

版主,能发给我一份,28015可以用的 chip support package(csp)吗?

版主,能发给我一份,28015可以用的  chip support package(csp)吗?网上一直找不到这个东东,可以麻烦版主,或者哪位朋友有发给我一份吗? z_s_rong@126.com 谢谢。…

查看全部问答>

【求助】各位大侠帮帮忙,我快郁闷死了!!

faceb4: 我在做msp430驱动sed1335来显示320*240的液晶显示屏,程序怎么都不行,希望那位大侠能够给一些程序(包括初始化),谢谢了!!! …

查看全部问答>

HA12002 有关问题

喇叭保护IC HA12002 的过载保护(第六脚)如何接入(需多少电压),第5脚(交流检测)参数如何设定,可否直接短路?谢谢大侠们细心指导!!!(从报废的功放中得到了一块喇叭保护板,想用在自己DIY的功放中)…

查看全部问答>

友善之臂mini2440转手

卖掉...友善之臂mini2440开发板3.5寸LCD触摸屏S3C24...有木有人想要... [img]file:///C:/Users/吴斌/Documents/Tencent%20Files/874901774/Image/d[$%7B6@z@6duwe33y%25l9~%250z.jpg[/img] file:///C:/Users/吴斌/Documents/Tencent%20Files/8749 ...…

查看全部问答>

悲剧的Nios 12.0

最近一直想给EE_FPGA做个集成化的测试程序,思来想去还是nios开发简单点,尼玛,悲剧的事情发生了。。 我做了一遍一遍,就是不对,怎么都下载不到sdram里面去。真的是黔驴技穷了啊。。 我开始怀疑编译器了,我换成了nios 11.0 ;NND,就神奇的好 ...…

查看全部问答>

launch pad USB串口驱动在win8 64bit 跑串口不稳定

环境1. 硬件 430 launchpad with touch board2. 下载了touch board的软件包slac490,安装里面的usb驱动LaunchPad_Driver3. CCS5.5.0 4. win8 64bit现象1. CCS可以连接并debug2. 硬件管理器里面可以看到USB映射com3. 将launch pad 串口收发短接(去 ...…

查看全部问答>

【高薪诚聘】硬件工程师、嵌入式开发【成都】

成都成我科技有限公司高薪诚聘硬件工程师、嵌入式开发, 良好的福利和发展前景邀您加盟~ 工作地点:成都天府软件园 联系方式:11093753@qq.com(请将简历发送至此邮箱或加QQ详谈) 嵌入式工程师 岗位职责: 1. 根据需求裁剪Linux 2. 调试摄 ...…

查看全部问答>