历史上的今天
返回首页

历史上的今天

今天是:2025年04月23日(星期三)

正在发生

2019年04月23日 | STM32学习笔记-点亮第一个led

2019-04-23 来源:eefocus

点亮第一个led灯之前要先大概了解一下单片机的工作方式并且有一定的编程基础,能看懂程序


单片机上有很多引脚,被称作io口,io口是通过总线(信号传输的通路)与内部处理系统(执行程序的硬件的总称)相连接,内部处理系统执行c语言程序可以直接控制io口,硬件机器只能识别机器码,但是已经有人一层一层的从底层封装,封装好了stm32 c语言库函数.因此,我们只需调用库函数即可.


点亮第一个io口的核心问题就是io口的配置(初始化)


void GPIOC13(void)

{

    GPIO_InitTypeDef GPIO_InitStructure;

    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC , ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 

    GPIO_Init(GPIOC, &GPIO_InitStructure);

}


上面是一个初始化c13口的例子,在stm32库函数中,由于实现每个功能(配置每个功能)都需要很多参数,因此库函数中用结构体的方式,把每个参数放到结构体成员中,再通过一个函数将结构变量的指针传入调用该函数就可以实现初始化.


比如上面初始化c13口的例子"GPIO_InitTypeDef"是一个结构体这里定义了一个名字为"GPIO_InitStructure"的结构体变量RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC , ENABLE);这句是使能(打开0)apb2总线的时钟,不是结构体内容,io口工作必须打开这个时钟从


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;这行开始给结构体成员赋值,这个成员是引脚代号这里是13,


GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;这个成员是总线时钟速度,这里是50mhz(设置了这个io口输出信号的速率)


GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;这个成员是输出模式,现在是推挽模


stm32的io口几种模式这里有一篇讲解http://blog.csdn.net/lq18811566072/article/details/51585743


1.推挽输出,输出能力强,开关速度快,数字信号输出.


2.开漏输出,利用外部电路驱动


3.浮空输入,io口的电平是悬空的,不确定的,完全由外部输入决定.


4.上拉下拉模拟输入,上拉为io口高电平,下拉为io口低电平,模拟输入为模拟量输入.


5.复用开漏输出,复用推挽输出,io被用作第二种用途.


配置好这个结构体后,调用GPIO_Init(GPIOC, &GPIO_InitStructure);io初始化函数参数1是gpiox,stm32中io口以字母和数字标号,第二个参数为结构体变量的地址.


最后在入口函数(main函数)中调用该初始化函数即可完成io的初始化.


GPIO_ResetBits(GPIO,GPIO_Pin_13);GPIO_SetBits(GPIOB,GPIO_Pin_13);


推挽模式下这两个函数控制io高低电平.

推荐阅读

史海拾趣

CDI-DIODE公司的发展小趣事

随着市场竞争的加剧,CDI-DIODE公司意识到传统的营销方式已经无法满足市场需求。于是,公司开始尝试新的营销策略,如线上推广、社交媒体营销等。这些创新的营销方式不仅提升了公司的知名度,也增强了与客户的互动和联系,进一步提升了品牌影响力。

E Connector Solutions公司的发展小趣事

E Connector Solutions公司始终坚持以客户需求为导向的产品创新策略。公司密切关注市场动态和客户需求变化,及时调整产品策略。例如,随着新能源汽车市场的兴起,公司迅速研发出适用于新能源汽车的专用连接器产品,满足了客户对高可靠性、高安全性的需求。这种以客户需求为导向的产品创新策略使得公司能够保持市场的领先地位。

Bestar Electric公司的发展小趣事

随着技术实力的提升和产品线的丰富,Bestar Electric开始积极拓展市场。公司通过参加国际电子展、建立销售团队和合作伙伴网络等方式,将产品推向全球市场。同时,公司注重品牌建设,通过广告宣传和客户服务提升品牌知名度和美誉度。

AW Industries Inc公司的发展小趣事

除了追求经济效益外,AW Industries Inc还注重履行社会责任。公司积极参与环保事业,通过采用环保材料、减少废弃物排放等方式降低生产对环境的影响。同时,公司还关注员工福利和社会公益事业,通过捐款、资助等方式回馈社会。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。


请注意,这些故事是基于电子行业的一般情况虚构的,并不代表任何真实事件或公司。如果您需要关于特定公司的真实发展故事,建议您查阅相关资料或访问公司官网以获取更准确的信息。

Cynergy 3公司的发展小趣事

Cynergy 3公司最初以生产干簧开关起家,位于英国多塞特郡的工厂见证了公司从一个小型制造商到全球领先者的蜕变。通过不断创新和改进,Cynergy 3的干簧继电器产品逐渐获得了市场的认可。公司注重产品质量和可靠性,确保每一个出厂的产品都能达到最高的标准。这种对质量的坚持使得Cynergy 3在竞争激烈的电子行业中脱颖而出。

FUJIKURA公司的发展小趣事

Cynergy 3注重企业的社会责任和文化建设。公司积极参与公益事业和环保活动,致力于为社会做出贡献。同时,Cynergy 3还注重员工的培养和发展,为员工提供良好的工作环境和福利待遇。这种注重社会责任和企业文化建设的做法使得Cynergy 3在行业中树立了良好的形象,也为公司的长期发展奠定了坚实的基础。

以上五个故事框架涵盖了Cynergy 3在电子行业中的发展历程、技术创新、国际化战略、客户需求驱动以及社会责任与企业文化等方面。每个框架都可以进一步扩展为完整的故事,详细描述Cynergy 3在不同阶段的发展情况和取得的成就。

问答坊 | AI 解惑

STM32入门工具篇

介绍一下STM32开发都有什么工具,资料需要到什么地方下载。 一、STM32资料     ST对于其新的32bit MCU平台的重视程度可从其提供的应用笔记的数量和相应的参考代码上可见一斑。     STM32的全部英文官方版本下载地址: ...…

查看全部问答>

quartusII中 如何设置rom大小?

现已有4k rom大小,现因为程序大于4k了我想换成8k,改了地址线和相关配置,但是程序(5k左右)下进去运行不正常,请问怎么才能正确设置rom大小呢?fpga芯片是EP2C5T144C8…

查看全部问答>

MmMapIoSpace的问题!!

我在程序中使用MmMapIoSpace操纵GPIO, 可是貌似没有效果,请各位老大帮忙看看!谢拉。          volatile static  S5PC100_GPIO_REG * pGPIOReg = NULL;           &nbs ...…

查看全部问答>

[求助]return用法问题

void HookISR() using 1   //using 1 的意思是用寄存器1吗? { if (_bHook) return;    //这句是不是说如果_bHook的值为真的话,那么就退出这个函数呢,不再执行下面的语句?如果如果_bHook的值为假的话,就顺序执行下面的语 ...…

查看全部问答>

基于2440的wince 4.2的系统--为什么在增加串口驱动后,无法sleep!?

辛苦了2天,终于把调试口uart1修改为了com3,解决了搞波特率丢数据的问题.. 本以为可以好好休息了... 结果没有想到,在串口一切正常的时候,系统无法sleep了.. 按键待机之后,屏幕依然亮着,触摸无响应 由于调试口uart1修改为了com3,无法在调 ...…

查看全部问答>

温湿度控制器

我女朋友要做一个花房的温湿度控制系统, 可是不知道怎么下手, 谁有这方面的资料, 电路图,编码的等等, 嵌入式我不会, 老是让我给她想办法,头都大了,大家帮帮忙。 立刻结分。 谢谢…

查看全部问答>

高价求购DK3200开发套件.(二手也可)

项目所限,必须用UPSD3234A-40U6来开发, 不熟,拿个开发板来熟悉一下. 我找新的很难找到,有谁知道再哪里搞到,不胜感激. 价格没问题 电话联系我: 13560625340…

查看全部问答>

在Q II环境下出现了如下警告,请教解决办法

在Q II环境下出现了如下警告,请教高人给予指点解决办法: ----------------------------------------------------------------------  1. Warning:  Found 6 output pins without output pin load capacitance assignment  &nbs ...…

查看全部问答>

MSP430G2553 DA问题

怎么用MSP430G2553  做DA转换器 输出电压  求帮助  本人新手 不懂  谢谢!…

查看全部问答>

关于风火轮的官方指导文档中的取样时间

Capacitive Touch BoosterPack (430BOOST-SENSE1) for the LaunchPad User\'s Guide (Rev. B) slau337b 第15页 The User Experience application starts in sleep mode, sampling the proximity sensor approximately every 8.3 ms (VLO / 100 = ...…

查看全部问答>