//初始化IO模式:上拉/下拉输入。调用函数:
void KEY_Init(void) //IO初始化
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE,ENABLE);//使能PORTA,PORTE时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;//KEY0-KEY2
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入
GPIO_Init(GPIOE, &GPIO_InitStructure);//初始化GPIOE2,3,4
}
// 扫描IO口电平(库函数/寄存器/位操作)。
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
#define KEY0 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)//读取按键0
关键字:STM32 GPIO初始化
引用地址:
STM32应用简章之GPIO初始化
推荐阅读最新更新时间:2024-03-16 16:27
STM32学习笔记二:什么是寄存器
芯片架构简图 芯片(这里指内核,或者叫 CPU)和外设之间通过各种总线连接,其中驱动单元有 4个,被动单元也有 4 个。为了方便理解,我们都可以把驱动单元理解成是CPU 部分,被动单元都理解成外设。 系统框图 1、ICode总线:ICode 中的 I 表示 Instruction,即指令。我们写好的程序编译之后都是一条条指令,存放在 FLASH 中,内核要读取这些指令来执行程序就必须通过 ICode 总线,它几乎每时每刻都需要被使用,它是专门用来取指的。 2、驱动单元: (1)DCode 总线:DCode 中的 D 表示 Data,即数据,那说明这条总线是用来取数的。我们在写程序的时候,数据有常量和变量两种,常量就是固
[单片机]
STM32之USART库函数USART_SendData的bug
1.最近在调试ATM32F103CB时发现,一串数据的最后一个字节总是发送不出去,用的是RS485收发; 2.代码如下: void uartReturn(unsigned char childBoardAddr) { uchar temp = 0; //must have temp += 0xAB; temp += childBoardAddr; temp += 0x30; temp += 0x01; temp += childBoardAddr; RS485_TX_EN; //enable rs485 tx sendByte(0xAB); sendByte(childBoardAddr); se
[单片机]
STM32单片机内存管理器代码
本代码适用于无操作系统的STM32单片机开发,功能强大。 可申请到地址空间连续的不同大小的内存空间,且用户接口简单,使用方便。 memory.h: memory.c:
[单片机]
STM32+HC05串口蓝牙设计简易的蓝牙音箱
一、环境介绍 MCU: STM32F103C8T6 蓝牙模块: HC05 (串口蓝牙) 音频解码模块: VS1053B OLED显示屏: 0.96寸SPI接口OLED 开发软件: Keil5 上位机: 使用QT设计Android端APP 二、功能介绍 Android手机打开APP,设置好参数之后,选择音乐文件发送给蓝牙音箱设备端,HC05蓝牙收到数据之后,再传递给VS1053进行播放。程序里采用环形缓冲区,接收HC05蓝牙传递的数据,设置好传递的参数之后,基本播放音乐是很流畅的。 完整项目源码下载地址: https://download.csdn.net/download/xiaolong1126626
[单片机]
STM32在Kiel4中注意的问题
开发环境:KIEL4,芯片STM32F103VCT6。函数库VC3.5 1.配置开发环境。 2.Option for Target,主要是C/C++和debug两个部分设置。 3.变量和函数名自动补全以及中文乱码设置。 4.逻辑分析仪。信号不存在或者不能出图形。
[单片机]
STM32 USB SD读卡器(SDIO)
这次是做一个SD卡的USB读卡器的功能,我们就在上次NAND Flash模拟出的U盘的工程上修改了,这样的话只要修改一小部分了。 工程的绝大部分不需要修改,只要将fsmc_nand.c文件移除工程,添加上官方的关于SDIO的SD卡的驱动代码文件stm32_eval_sdio_sd.c,我讨厌出现eval,所以将该文件直接改为sdio_sdcard.c。同时,既然我们使用SDIO来驱动SD卡,所以在外设库文件组里要添加stm32_sdio.c文件,否则会出现很多未定错误。 STM32 USB SD读卡器(SDIO) 我们接下去修改的就只有mass_mal.c这个文件了。更NAND Flash工程一样,我们改成简洁点: uint3
[单片机]
STM32 输入捕获功能
01、STM32捕获功能 从STM32的定时器框图中看 ①部分基础定时器模块,已经在《 STM32基础定时器详解 》讲解过了。 ②部分捕获/对比通道模块,已经在《 定时器的PWM功能 》讲解过了。 ③部分是本文的重点,输入捕获模块。 从上图可以看出定时器1共有4个输入捕获通道。 下文以定时器1的捕获通道2为例讲解。 首先确定下对应的GPIO,从STM32F207数据手册的Alternatefunction mapping看出,定时器1通道2对应的GPIO有PA9和PE11,下文将使用PE11。 02、输入捕获过程 输入阶段采样对应的对输入TIx,去产生滤波后的信号TIxF。然后极性选择边沿检测器产生一个信号(TIx
[单片机]
STM32 (Cortex-M3) 中NVIC(嵌套向量中断控制)的理解
一、STM32 (Cortex-M3) 中的优先级概念 STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作“亚优先级”或“副优先级”,每个中断源都需要被指定这两种优先级。 1. 何为占先式优先级(pre-emption priority) 高占先式优先级的中断事件会打断当前的主程序/中断程序运行—抢断式优先响应,俗称中断嵌套。 2. 何为副优先级(subpriority) 在占先式优先级相同的情况下,高副优先级的中断优先被响应; 在占先式优先级相同的情况下,如果有低副优先级中断正在执行, 高副优先级的中断要等待已被响应的低副优先级中断执行结束后才能得到响应—非抢断式响应(
[单片机]