历史上的今天
返回首页

历史上的今天

今天是:2025年08月06日(星期三)

正在发生

2019年08月06日 | stm32f407之GPIO(操作寄存器)

2019-08-06 来源:eefocus

stm32f407VG这款单片机上共有PA-PE共5×16共80个复用IO口,每个通用I / O端口有4个32位配置寄存器(GPIOx_MODERGPIOx_OTYPER GPIOx_OSPEEDR GPIOx_PUPDR),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位的置位/复位寄存器(GPIOx_BSRR),32位锁定寄存器(GPIOx_LCKR)和两个32位的备用功能选择寄存器(GPIOx_AFRHGPIOx_AFRL)。


设置步骤:


1.     使能相关时钟


2.     设置相应的IO口为输入或输出


3.     设置输入输出的类型


4.     设置输出的速度(如果设置为输入,此步跳过)


5.     如果输出速度>=50M,开启补偿单元


6.     设置上拉下拉寄存器


7.     通过复位置位寄存器和输入输出数据寄存器进行操作。


程序:


/************************************

    标题:操作GPIO的练习

    软件平台:IAR for ARM6.21

    硬件平台:stm32f4-discovery

    主频:168M

    

    author:小船

    data:2012-01-16

*************************************/

 

#include  

 

uint32_t Gb_TimingDelay;

 

void Delay(uint32_t nTime);

 

void main ()

{   

  SysTick_Config(SystemCoreClock / 1000); //设置systemtick一毫秒中断

  

  RCC->AHB1ENR |= 0x00000008; //使能GPIOD时钟

  RCC->APB2ENR |= (1<<14);  //使能syscfg时钟

  

  GPIOD->MODER &= 0x00FFFFFF; //设置PD12,13,14,15输出

  GPIOD->MODER |= 0x55000000; 

  

  GPIOD->OTYPER &= 0xFFFF0FFF; //设置PD12,13,14,15推挽输出

  

  GPIOD->OSPEEDR &= 0x00FFFFFF; //PD12,13,14,15 速度100m

  GPIOD->OSPEEDR |= 0xff000000;

  

  SYSCFG->CMPCR = 0x00000001; //使用IO补偿单元,

//当GPIO速度超过50M的时候要考虑使用此设置

  

  GPIOD->PUPDR &= 0x00FFFFFF;  //PD12,13,14,15 无上拉无下拉

  

  GPIOD->BSRRH = 0xf000; //reset register GPIOx_BSRRH, write only

                          //set register GPIOx_BSRRL, write only

  

  while(1)

  {

      GPIOD->BSRRH = 0xf000;

      GPIOD->BSRRL = 0x1000; 

      Delay(500);

      

      GPIOD->BSRRH = 0xf000;

      GPIOD->BSRRL = 0x1000<<1;

      Delay(500);

      

      GPIOD->BSRRH = 0xf000;

      GPIOD->BSRRL = 0x1000<<2;

      Delay(500);

      

      GPIOD->BSRRH = 0xf000;

      GPIOD->BSRRL = 0x1000<<3;

      Delay(500);

  }

}

 

void Delay(uint32_t nTime)

  Gb_TimingDelay = nTime;

 

  while(Gb_TimingDelay != 0);

}

 

 

void SysTick_Handler(void)

{

  if (Gb_TimingDelay != 0x00)

  { 

    Gb_TimingDelay--;

  }

}

推荐阅读

史海拾趣

Hi-Tech Resistors Pvt Ltd公司的发展小趣事

机顶盒,全称为数字视频变换盒,是现代家庭娱乐不可或缺的重要设备。从广义上讲,任何与电视机连接的网络终端设备均可视为机顶盒,它们不仅限于接收和转换电视信号,还承载着丰富的娱乐与信息服务功能。

机顶盒的核心功能在于接收并转换来自有线电缆、卫星天线、宽带网络及地面广播的数字电视信号,将其转换为电视机可识别的视频和音频流。这一转换过程确保了观众能够享受到高清乃至4K超高清的画质和震撼的音效,极大地提升了观看体验。此外,机顶盒还集成了诸如电子节目指南、因特网网页浏览等增值服务,让电视机不再仅仅是单向接收信息的设备,而是成为一个能够与用户进行互动的智能终端。

随着技术的发展,机顶盒的种类日益丰富,按主要功能可分为数字卫星机顶盒、有线电视数字机顶盒、IPTV机顶盒等。这些机顶盒不仅满足了用户多样化的观看需求,还通过连接互联网,提供了在线购物、视频点播、游戏娱乐等多元化服务。未来,随着高清、超高清技术的普及以及人工智能、云计算等技术的应用,机顶盒将向智能化、多功能化方向发展,为用户提供更加便捷、个性化的使用体验。

总之,机顶盒作为连接电视与互联网的桥梁,在丰富家庭娱乐生活、提升观看体验方面发挥着重要作用。随着技术的不断进步和市场需求的持续增长,机顶盒行业将迎来更加广阔的发展前景。

Fortiming Corporation公司的发展小趣事

背景:在电子行业,成本控制和供应链管理是企业竞争力的重要体现。

发展:Fortiming不断优化供应链管理流程,与上游供应商建立长期稳定的合作关系,确保原材料的稳定供应和质量可靠。同时,公司还通过技术创新和工艺改进,降低生产成本,提高产品竞争力。这些措施使得Fortiming在激烈的市场竞争中保持了良好的盈利能力。

HDP_Power公司的发展小趣事

背景:2001年9月5日,Fortiming Corporation在内华达州正式成立(来源:企查查)。在成立之初,公司就明确了自己的市场定位——专注于提供高质量的石英晶振、晶体振荡器等频率控制产品。

发展:面对当时竞争激烈的电子行业,Fortiming凭借其对技术的深刻理解和对市场需求的敏锐洞察,迅速在石英晶振领域站稳脚跟。公司不仅注重产品研发,还积极引进先进生产设备,提升产品质量和生产效率。

Galaxy ( Bel )公司的发展小趣事

背景:随着公司规模的扩大和产品线的丰富,Fortiming开始寻求更广阔的市场空间。

发展:公司积极参加国内外电子展会,展示其最新技术和产品,吸引了众多客户的关注。同时,Fortiming还与国际知名电子企业建立了合作关系,共同开发新产品,开拓新市场。这些合作不仅提升了Fortiming的品牌影响力,还为公司带来了更多的商业机会。

ES Systems公司的发展小趣事

ES Systems自创立之初就专注于电子系统技术的研发。公司创始人是一位资深的电子工程师,他带领团队不断突破技术瓶颈,开发出了一系列高性能的电子系统产品。随着技术的不断成熟和产品线的丰富,ES Systems逐渐在市场中树立了技术领先的形象,吸引了大量客户的青睐。公司通过技术驱动实现了快速成长,并在电子行业中占据了重要地位。

General Electric Company公司的发展小趣事
尽管工作在高压环境下,但仍能保持较低的噪声水平,以保证信号的清晰度。

问答坊 | AI 解惑

俺想学习FPGA--有偿寻求合作开发FPGA学习板

俺想学习FPGA--有偿寻求合作开发FPGA学习板 看到现在FPGA现在这么火爆,忍不住想学习一下。 但是本人对FPGA了解甚少。想寻求高手共同合作搞一个FPGA开发板。 我负责:元件费用,打样费用。以及适当给与合作者一定酬劳(这个不多,呵呵,俺也是 ...…

查看全部问答>

无线通信系统中的调制解调基础(一):AM和FM

作者: Ian Poole Adrio Communications Ltd 第一部分解释了调幅(AM)和调频(FM)的基础,并阐述了优点和缺点。第二部分解析了频移键控(PSK)和正交幅度调制(QAM)。第三部分讨论扩频通信技术,包括被广泛应用的直接序列扩频通信(DSSS),和 ...…

查看全部问答>

.net程序在WinCE5.0上不能运行

我的wince上咋就不能运行dotnet的程序呢,点击应用程序一点反应也没有,也不报错。另外,保证dotnet的支持包已经打入wince,1.1和2.0都打了。 把SYSGEN_DOTNET和SYSGEN_DOTNET_SUPPORT还有DOTNETV2的所有选项加上,则运行dotnet的程序既不报错 ...…

查看全部问答>

PB5.0补丁问题

MS网站上PB5.0几乎每个月都有补丁,请问打补丁时是打最新的还是所有的都打上。我看了最新的补丁好象就升级了BLUETOOTH的程序。…

查看全部问答>

AD7705的参考电平能不能是5v

我看很多资料都写得是AD7705的参考电平时2.5v,但是今天看到有人用ref195的输出做AD7705的参考电平,ref195接ref+输出5v,ref-接地请问这样合适吗。 还有AD7705的资料上写着采样范围是0-20mv或0-2.5v,一直不太明白这是什么意思,0-2.5v不是包括0- ...…

查看全部问答>

An unspecified Debug Toolbox call failed

我在使用ADS1.2套件的AXD时,连接了Easyjtag,并进行了设置,但是却出现了如题的An unspecified Debug Toolbox call failed的错误,请高人指点,该如何解决这个问题?…

查看全部问答>

keil编译ARM报--- Error: can't execute 'BIN30\ArmAsm'怎么解决

我安装的keil 3.3版本,以前用来编译C51,现在添加上ARM,操作系统是U COS II,编译时报--- Error: can\'t execute \'BIN30\\ArmAsm\',我把C:\\Keil\\ARM\\BIN30中的ARMASM.EXE拷贝到BIN中无法解决此问题,请教高手要怎么处理…

查看全部问答>

VC33-120定时中断我置1ms中断 结果是10ms ?

斑竹: 我用vc33-120做了一块卡,外部晶阵是12m,5倍频,定时中断置数30000,理论计算 我的定时中断应该是1000hz,但是发现是100hz,我晶阵换过,都没有用.请教斑竹 最可能是什么原因啊  急!文字…

查看全部问答>

德州仪器:OMAP 5平台:开启移动设备变革新时代

TI OMAP 5平台不仅全面提升了性能,还采用了能够带来新机遇和用户体验的新特性,从而使应用处理器能够满足更广泛的要求。简而言之,OMAP 5平台将以其全新的性能及功能水平推动移动设备的变革,让我们共同开启“变革”新时代!$(\'swf_eBM\').innerH ...…

查看全部问答>

温度显示以及控制电机转速,不能同时工作,来人指点一下啊

#include #define uchar unsigned char #define uint unsigned int sbit uln=P2^0;//uln2803 sbit DQ=P2^1;//ds18b20与单片机连接口 sbit ming=P2^2;// sbit hong1=P2^3; sbit hong2=P2^4; sbit RS=P2^5; sbit RW=P2^6; sbit EN=P2^7; u ...…

查看全部问答>