GPIO_Mode_AIN = 0x0, 模拟输入
GPIO_Mode_IN_FLOATING = 0x04, 浮空输入
GPIO_Mode_IPD = 0x28, 带下拉输入
GPIO_Mode_IPU = 0x48, 带上拉输入
GPIO_Mode_Out_OD = 0x14, 表示配置相应管脚为GPIO开漏输出(真双向IO)
GPIO_Mode_Out_PP = 0x10, 通用推挽输出模式
GPIO_Mode_AF_OD = 0x1C, 表示配置相应管脚为复用功能的开漏输出
GPIO_Mode_AF_PP = 0x18 复用功能的推挽输出模式
推挽输出:可以输出高,低电平,连接数字器件;推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.
开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).
要实现 线与 需要用OC(open collector)门电路.是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小,效率高。输出既可以向负载灌电流,也可以从负载抽取电流。
//--------------------------------------------------------------------------
但用作纯粹的输出时,可以选用GPIO_Mode_Out_PP,但是有些硬件上有要求用开发射极的结构就要用GPIO_Mode_Out_OD 。
如果既要用于输出,又要接收信号作输入,无需改变该pin的工作模式,只需设定为输入浮点状态GPIO_Mode_IN_FLOATING ,但是读的时候读输入寄存器(GPIOE->IDR)的值。输出值照样设定,不过输出pin脚可能要硬件上上拉。
关键字:stm32 引脚功能 设定
引用地址:
stm32 引脚功能设定及应用
推荐阅读最新更新时间:2024-11-04 19:34
STM32单片机编程方式及工作原理
STM32单片机编程可以使用多种不同的编程语言和工具,下面是一些常用的编程方式: C语言编程:C语言是STM32单片机编程中最常用的编程语言之一,STM32提供了官方的标准外设库和HAL库来简化编程过程。 Keil:Keil是一款集成开发环境(IDE),它可以与多种编译器和调试器一起使用,包括ARM编译器和CMSIS-DAP调试器,使得开发者可以方便地进行编程、编译和调试。 STM32CubeIDE:STM32CubeIDE是STMicroelectronics提供的官方集成开发环境,可以使用C/C++语言编程,支持多种STM32单片机系列,提供了一系列的图形化工具和代码生成器,使得开发者可以更加方便地进行开发、调试和优化。
[单片机]
STM32的硬件SPI驱动LCD例子
前言:每学一个新知识,都会出现很多出错的情况,百度也查不出来,耗费很多时间,主要是不理解底层原理,没太多时间去理解,催得紧。SPI嘛,是人都知道干嘛用的,我一时半会也不知道怎么表达,百度最不缺的就是定义。缺的是实现过程,本少爷花了几十个积分搞了n多个实例,终于总结了要成功实现SPI要哪些奇葩的步骤。 历史:今天17年9月1,前几天我导师嫌我刷新屏幕太慢,给我做了代码的调整,发现速度杠杠的,屏幕蹭蹭蹭的刷屏,翻一下笔记,大概要处理几处小细节:1.LCD的CS片选做优化 2.DC也优化3.直接操作寄存器4.我下文中加了Delay(1);后来也优化了。有时间另写优化的链接给大家 正文: -----------------------
[单片机]
让菜鸟秒变stm32高手的STM32CubeMX
菜鸟到高手,显得有些霸气哈,不过的确如此,官方带给我们一个比较实用的stm32的工具。这个工具就是STM32CubeMX,昨天玩freeRTOS的时候就提到过。说到freeRTOS,这里就多说两句。全局变量,在任务间相互访问的时候也是需要临界保护的,不然可能会出现奇怪的问题。不过我们可以关掉时间片调度,任务间可以访问全局变量而不用加保护(不等于菜鸟可以随意代码)。关闭了时间片调度,只有发生vTaskDelay的时候才会上下文切换。只要代码合理访问全局变量可以不加保护的。因此代码也不是可以任意书写的,关于freeRTOS的问题,多看看源码,一切都会有答案。源码较少,这里就不过多介绍。关闭时间片不是网上说的configUSE_
[单片机]
stm32 通用定时器与 PWM
通用定时器(以下以通用定时器3,通道3 为例): 第一步:开启时钟使能 RCC- APB1ENR:1 位 //开启定时器3 时钟使能 第二步:设置定时器分频与装载计数值(以一周期 1ms) TIM3- PSC = 7199; //系统时钟为 72M 经 (7199+1) 分频后,定时器时钟为 10k(一周期为0.1ms) TIM3- ARR = 9; //计数周期为 0.1ms * (9+1) = 1ms 第三步:使能定时器 TIM3- CR1:0 位 //开启计数器,开始计时 第四步:溢出中断使能 TIM3- DIER:0 位 //开启溢出中断 第五步: void TIM3_IRQHandler(void); 利用通用定时
[单片机]
STM32单片机GPIO口的学习
GPIO: STM32的(64引脚的)IO口一共有3个,分别是PA、PB、PC. STM32的IO端口可以由软件配置成8种模式: 1,输入浮空 2,输入上拉 3,输入下拉 4,模拟输入 5,开漏输出 6,推挽输出 7,推挽复用功能 8,开漏复用功能 STM32的每个IO端口都有7个寄存器来控制。他们分别是:配置模式的2个32位的端口配置寄存器CRL和CRH;2个32位的数据寄存器IDR和ODR;1个32位的置位/复位寄存器BSRR;一个16位的复位寄存器BRR;1个32位的锁存寄存器LCKR;我们常用的IO端口寄存器只有4个:CRL、CRH、IDR、ODR。 注意(在配置ST
[单片机]
STM32 DMA 知识讲解
DMA,全称为:DirectMemoryAccess,即直接存储器访问,DMA传输将数据从一个地址空间复制到另外一个地址空间。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA传输对于高效能嵌入式系统算法和网络是很重要的。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,能使CPU的效率大为提高。DMA是个非常好的功能,它不但能减轻CPU负担,还能提高数据传输速度. STM32最
[单片机]
基于STM32-蜂鸣器
1.蜂鸣器 蜂鸣器是一种发声设备,被广泛用于计算机、打印机、复印机、报警器、电子玩具等。后面介绍定时器是会给大家说说利用蜂鸣器实现歌曲演奏。蜂鸣器分为有源蜂鸣器和无源蜂鸣器。那么什么是有源,什么是无源呢?这里的有源不是指电源的“源”,而是指有没有自带震荡电路,有源蜂鸣器自带了震荡电路,一通电就会发声;无源蜂鸣器则没有自带震荡电路,必须外部提供 2~5Khz 左右的方波驱动才能发声。 2.硬件介绍 这里使用STM32F103实现无源蜂鸣器的交替发声,下图是硬件设计图。首先,STM32F1 的单个 IO 最大可以提供 25mA 电流(数据手册查看),而蜂鸣器的驱动电流是 30mA 。这里使用一个NPN三极管(S8050)扩
[单片机]
STM32上电启动过程分析
单片机上电后执行的第一段代码 1.初始化堆栈指针 SP=_initial_sp 2.初始化 PC 指针=Reset_Handler 3.初始化中断向量表 4.配置系统时钟 5.调用 C 库函数_main 初始化用户堆栈,然后进入 main 函数。 在正式讲解之前,我们需要了解STM32的启动模式。 STM32的启动模式 手册可以在Keil中跳转查看 STM32的三种启动模式 首先要讲一下STM32的启动模式,因为启动模式决定了向量表的位置,STM32有三种启动模式: 1. 主闪存存储器(Main Flash memor
[单片机]