历史上的今天
返回首页

历史上的今天

今天是:2025年01月17日(星期五)

正在发生

2019年01月17日 | STM32:STM32学习记录3:按键输入

2019-01-17 来源:eefocus

1:IO配置:。上拉输入模式:区别在于没有输入信号的时候默认输入高电平(因为

有弱上拉)。下拉输入模式:区别在于没有输入信号的时候默认输入低电平(因为有弱下拉)。对于浮空输入模式顾名思义也就是输入什么信号才是什么信号,对于浮空输入要保证有明确的输入信号。


2:stm32的GPIO既可以设置为输出也可以设置为输入,当设置为输入时,输出还是可以有效的,当设为上拉时,可以把输出设为高电平,而设为下拉输入时,把输出设为低电平,这样就有了上拉和下拉。


3:STM32 支持 JTAG 和 SWD 两种仿真接口,他们和普通的 IO 口共用,当需要使用普通 IO口的时候,则必须先禁止 JTAG/SWD。STM32 在默认状态下是开启 JTAG 的,所以那些和 JTAG共用的 IO 口,在默认状态下是不能做普通 IO 口使用的。


我们可以通过 AFIO_MAPR 寄存器的24~26 位来修改 STM32 的 JTAG 配置,从而切换为普通 IO 口或者其他状态。


原程序如下:

#include"sys.h"

#include"delay.h"

#include"usart.h"

 

#define KEY0 PAin(13)      //PA13 

#define KEY1 PAin(15) //PA15   

#define KEY2 PAin(0)   //PA0    WK_UP 

 

#define LED0 PAout(8)

#define LED1 PDout(2)

 

void IO_Init(void)

{

 RCC->APB2ENR|=1<<2;     //使能 PORTA 时钟 

 GPIOA->CRL&=0XFFFFFFF0;//PA0 设置成输入          

 GPIOA->CRL|=0X00000008;  //PA0 上拉下拉模式     

 GPIOA->CRH&=0X0F0FFFFF;//PA13,15 设置成输入           

 GPIOA->CRH|=0X80800000;  //PA13,PA15 上拉下拉模式                                    

 GPIOA->ODR|=1<<13;       //PA13输出1时 上拉 

 GPIOA->ODR|=1<<15;       //PA15输出1时 上拉   默认输出为0,所以PA0默认是下拉 

}

void LED_Init(void) //PA8,PD2为输出口

{

 RCC->APB2ENR|=1<<2;//使能PORTA时钟

 RCC->APB2ENR|=1<<5;//使能PORTD时钟

 GPIOA->CRH&=0xFFFFFFF0;

 GPIOA->CRH|=0x00000003;//PA8推挽输出

 GPIOA->ODR|=1<<8;//PA8输出高

 GPIOD->CRL&=0xFFFFF0FF;

 GPIOD->CRL|=0x00000300;//PD2推挽输出

 GPIOD->ODR|=1<<2;//PD2输出高

}

u8 Key_Scan(void)

{

 JTAG_Set(JTAG_SWD_DISABLE); //关闭JTAG

 if(KEY0==0)  //按键按下时为低电平

 {

  while(KEY0==0);

  JTAG_Set(SWD_ENABLE); 

  return 0;

 }

 if(KEY1==0)

 {

  while(KEY1==0);

  JTAG_Set(SWD_ENABLE); 

  return 1;

 }

 if(KEY2==1)   //按键按下时为高电平

 {

  while(KEY2==1);

  JTAG_Set(SWD_ENABLE); 

  return 2;

 }

 else 

 {

  JTAG_Set(SWD_ENABLE); 

  return 3;

 }

}

int main(void)

{

 u8 t=0;

 Stm32_Clock_Init(9);

 delay_init(72);

 LED_Init();

 IO_Init();

 

 while(1)

 {

  t=Key_Scan();

  switch(t)

  {

   case 0:

    LED0=!LED0;

    break;

   case 1:

    LED1=!LED1;

    break;

   case 2:

    LED0=!LED0;

    LED1=!LED1;

    break;

  }

 }

}



推荐阅读

史海拾趣

Furukawa Electric Co Ltd公司的发展小趣事

Furukawa Electric Co., Ltd. 在电子行业的五个发展故事

故事一:创立与早期发展

Furukawa Electric Co., Ltd.(简称“Furukawa Electric”或“古河电工”)的故事始于1884年,当时公司在日本东京建立了铜精炼设施和线缆加工工厂。这一初期的发展奠定了公司在电线电缆领域的坚实基础。随着工业革命的推进,对通信和电力传输的需求日益增长,Furukawa Electric凭借其精湛的技艺和高质量的产品逐渐在市场中站稳脚跟。通过不断的技术创新和产品优化,公司逐渐扩大了其业务范围,涉足电信、电子产品、汽车等多个领域。

故事二:技术创新与领先地位

在20世纪,Furukawa Electric成为了新技术领域的先驱。公司不仅在传统的电线电缆领域保持领先地位,还积极投入研发,开发出了许多具有划时代意义的产品。例如,在光通信领域,Furukawa Electric致力于推动“光纤到户(FTTH)”工程,为信息化社会提供了重要的技术支持。此外,公司在半导体领域也取得了显著成就,开发了多种先进的电子元件和散热产品,满足了市场对高性能电子产品的需求。

故事三:汽车领域的深入合作

近年来,Furukawa Electric进一步扩展了其业务范围,与多家汽车制造商建立了紧密的合作关系。特别是在电动汽车领域,公司凭借其先进的高压绕组线(HVW)技术,为汽车制造商提供了高性能的电动机解决方案。这些绕组线不仅满足了电动汽车对更轻盈、更薄的电动机绕组线及更高电压的需求,还提升了电动机的整体性能。通过与Superior Essex Inc.的合资企业“Essex Furukawa Magnet Wire Europe GmbH”,Furukawa Electric成功将这一技术引入欧洲市场,进一步巩固了其在全球汽车行业的领先地位。

故事四:全球市场的拓展

随着全球化的加速推进,Furukawa Electric也加快了其全球市场的拓展步伐。公司在全球范围内建立了完善的生产和销售网络,覆盖了亚洲、欧洲、美洲等多个地区。通过与国际知名企业的合作与竞争,Furukawa Electric不断提升自身的技术实力和市场竞争力。同时,公司还积极参与国际标准的制定和推广工作,为全球电子行业的发展做出了重要贡献。

故事五:可持续发展与社会责任

在追求经济效益的同时,Furukawa Electric也始终关注可持续发展和社会责任。公司致力于通过技术创新和产品优化来降低能耗和减少环境污染。例如,在电力传输系统和配电电缆领域,Furukawa Electric开发出了多种高效节能的产品,满足了市场对绿色、环保产品的需求。此外,公司还积极参与社会公益活动,为当地社区的发展贡献自己的力量。这些举措不仅提升了公司的社会形象,也为其在电子行业的长期发展奠定了坚实的基础。

Deltron / DEM Manufacturing公司的发展小趣事

DEM Manufacturing一直注重技术创新和产品升级。在合并后的几年里,公司投入大量资源用于研发,推出了一系列具有创新性的电子产品。这些产品不仅满足了市场的多样化需求,还为公司赢得了良好的口碑和广泛的客户基础。

Herth+Buss Fahrzeugteile GmbH & Co KG公司的发展小趣事
在极端温度或湿度条件下,传感器的性能可能受到影响。
Ceratech Corporation公司的发展小趣事

在电子行业中,压敏技术是一项重要的技术。Ceratech Corporation公司针对这一领域进行了深入研究和探索。公司研发团队经过多次试验和改进,成功研发出具有自主知识产权的压敏产品。这些产品不仅具有高灵敏度和高稳定性,而且能够适应各种复杂环境。通过压敏技术的研发与应用,Ceratech Corporation进一步提升了其在电子行业的技术实力和市场竞争力。

Electro Adapter Inc公司的发展小趣事

随着全球环保意识的日益提高,EA公司积极响应绿色发展的号召,将环保理念融入到产品研发和生产过程中。公司采用环保材料、优化生产工艺、降低能耗等措施,努力减少产品对环境的影响。同时,EA公司还加强了对废弃产品的回收和处理工作,实现了资源的循环利用。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了基础。

博流(Bouffalo Lab)公司的发展小趣事

自成立以来,博流公司一直致力于物联网、车联网和智能穿戴领域集成电路芯片的研发。经过不断的技术创新和突破,公司成功推出了多款具有竞争力的芯片产品,广泛应用于智能家居、智慧城市、智能制造等领域。同时,博流还注重与物联网生态合作伙伴的紧密合作,共同提供端到端、边缘计算到云的整体解决方案,为客户创造价值。

问答坊 | AI 解惑

请教一个DDS的问题

本帖最后由 paulhyde 于 2014-9-15 09:26 编辑 在DDS设计中,要求实现VPP的幅度调整,看过一些资料是用产生波形的DA的输出接在ad0832的VREF端,我有几个问题不是很清楚: 1、这样的连接方法,是不是对DA的速度没有要求?就是说信号的频率高于DA的 ...…

查看全部问答>

求proteus 7.4版

如题。希望能够下一个。或者高手提供一个在vista下稳定使用的,能够和keil联调的proteus。…

查看全部问答>

操作系统兼容的问题, Windows, Linux, Vxworks.....

如题,众所周知现在的操作系统比较有名的是Windows, Linux, Vxworks, 他们的共性有如下: 1)可以创建线程 2)可以动态加载库文件 3)支持线程间通讯互斥 当然都支持C,C++标准语法,如new等等. 本人不才,请问还有其它操作系统支持以上特性否,请举例 ...…

查看全部问答>

自己编译的SDK问题

初学wince,我使用platform builder定制了个系统(照着一篇文章的介绍一步一步做的),编译SDK的过程很顺利,问题是在装完编译得到的SDK后,进入EVC环境,一选则自定义的SDK,系统就会死机。请问这是什么原因?是我SDK编译的问题还是EVC环境设置问 ...…

查看全部问答>

文献翻译-AM335x 硬件设计指南(未完)

    这些天的业余时间将围绕德州仪器(TI)的Cortex-A8 AM335x系列处理器进行学习,因为这款处理器的相关中文资料还很少,配套的开发板也是近期才推出的,在国内更是稀罕货,所以现在先从外文资料的翻译和学习先开始,翻译水平有限,也请 ...…

查看全部问答>

一个PN结的场效应管

目前,MOS工艺的绝缘栅场效应管由于其优越的性能在分立元件和集成电路方面都得到了广泛的应用。由其结构可以看出,目前的场效应管是在沟道的两端各扩散一个PN结,形成一种PN结背靠背连接的结构。 以P型衬底N沟道增强型场效应管为例,在电路中,源 ...…

查看全部问答>

【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第六十章 UCOSII实验3-消息...

第六十章 UCOSII实验3-消息队列、信号量集和软件定时器 上一章,我们学习了UCOSII的信号量和邮箱的使用,本章,我们将学习消息队列、信号量集和软件定时器的使用。本章分为如下几个部分:60.1 UCOSII消息队列、信号量集和软件定时器简介60.2 硬件 ...…

查看全部问答>

Sate210-F开发板硬件用户手册

1.Sate210-F 核心板硬件说明... 41.1概述... 41.2电气特性... 71.3引脚描述... 81.4接口描述... 191.4.1 通用数据总线SROM接口... 191.4.2 摄像头接口(CAMIF).. 211.4.3 LCD驱动器接口... 241.4.4 HDMI接口... 281.4.5 USB 2.0 HOST接口... 291.4.6 ...…

查看全部问答>