STM32的四种输入方式
1、上拉输入(GPIO_Mode_IPU)
上拉输入就是信号进入芯片后加了一个上拉电阻,再经过施密特触发器转换成0、1信号,读取此时的引脚电平为高电平;
2、下拉输入(GPIO_Mode_IPD)
下拉输入就是信号进入 芯片后加了一个下拉电阻,再经过施密特触发器转换成0、1信号,读取此时的引脚电平为低电平;
3、模拟输入(GPIO_Mode_AIN)
信号进入后不经过上拉电阻或者下拉电阻,关闭施密特触发器,经由另一线路把电压信号传送到片上外设模块。比如传送给ADC模块,由ADC采集电压信号。所以可以理解为模拟输入的信号是未经处理的信号,是原汁原味的信号。虽然我也知道这样表达不准确。
4、浮空输入(GPIO_Mode_IN_FLOATING)
信号进入芯片内部后,既没有接上拉电阻也没有接下拉电阻,经由触发器输入。
配置成这个模式后,用电压变量引脚电压为1点几伏,这是个不确定值。由于其输入阻抗比较大,一般把这种模式用于标准的通讯协议,比如IIC、USART的等。
关键字:STM32 输入方式
引用地址:
STM32的四种输入方式
推荐阅读最新更新时间:2024-03-16 15:42
基于STM32的HAL库学习(2)UART串口学习
1、串口的模式有3种,一是查询模式,二是中断模式,三是DMA模式 HAL_UART_Transmit();串口轮询模式发送,使用超时管理机制 HAL_UART_Receive();串口轮询模式接收,使用超时管理机制 HAL_UART_Transmit_IT();串口中断模式发送 HAL_UART_Receive_IT();串口中断模式接收 HAL_UART_Transmit_DMA();串口DMA模式发送 HAL_UART_Transmit_DMA();串口DMA模式接收 2、阻塞传输是调用这个函数并在等待时间内一直等待操作完成。 HAL_UART_Transmit HAL_UART_Receive
[单片机]
如何提高STM32的学习效率
第一章笔者的入门总结 每当我们在入门之前(ARM是这样,DSP也一样),总会会有很多疑问,会有很多顾虑。我们渴望知道学习STM32前景如何?需要啥基础?难不难?适不适合我?但是什么时候能心潮澎湃地、相当着急地开始学STM32?日子在一天一天过去!你开始行动了吗?没有行动的思索,永远都不可能入门!把这些时间用来看书吧,效果能好一万倍。 大家一般都是从51单片机过来的,回想一下,我们之前学单片机时如何入门呢?实际上都是先看书(理论),再玩板子(实践)。严格地说,应该是模仿实验。熟悉之后才会自己写程序代码实现某个功能。因此,如果你正在咨询STM32;如果你正对STM32心潮澎湃;如果你想入门STM32;那么,从现在开始,不要犹豫
[单片机]
基于STM32处理器的硬件电路连接图和软件程序设计
本文介绍了一款单片网络接口芯片W5100,该芯片内部集成了TCP/IP硬件协议栈,支持多种网络协议。给出了基于STM32处理器的硬件电路连接图和软件程序设计。目前,该系统已成功应用在多个建筑能耗监测项目中,运行结果表明该系统通信稳定可靠,能够满足项目对远程数据传输的需求。 数据采集与传输系统一直是工业控制、环境参数监测、建筑能耗信息监测等多个领域共同关注的问题,尤其是针对远程数据传输问题。受传输距离的限制,传统的现场总线通信方式只适合于近距离的数据传输;而基于GPRS技术的数据传输系统虽然可以不受距离的限制,但其按照流量进行收费,对于大量数据连续传输而言资费不低,在实际的项目中应用也不是很广泛。目前,基于以太网的数据传输系
[单片机]
分享两个STM32应用中的实战案例
今天在此分享两个STM32应用中的实战案例,权作提醒,以免重蹈覆辙。 案例1: 系统联机工作时,Flash编程偶发性失败 有人使用STM32F4系列芯片做开发,代码里涉及到FLASH编程。他发现FLASH编程过程中时不时地出现编程错误,即提示HAL_FLASH_ERROR_PGP错误。 他的产品系统有用到CAN通信。当他不将芯片做系统联机工作时不会发生该错误,只有在做整体联机测试时才可能发生编程异常。 起初,客户使用4字节编程模式,平常单独就flash编程功能测试也正常,整体联机运行时才可能出问题。后来,无意中尝试将FLASH单次编程宽度调整为1个字节后则异常消失。 那是为什么呢? 其实,在做FLASH编程时,选择
[单片机]
STM32的SPI查询方式传输测试
环境: 主机:WIN7 开发环境:MDK4.23 MCU:STM32F103CBT6 说明: 软件设置NSS脚,利用查询方式传输 源代码: 初始化代码: //关闭SPI SPI_Cmd(SPI1,DISABLE); //初始化SPI接口的SSN脚以及NTRX的RST脚 NtrxCtrlInit(); //初始化SPI时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1 | RCC_APB2Periph_GPIOA,ENABLE); //配置SPI1引脚:SCK, MISO and MOSI GPIO_InitStructure.GPIO_Pin = GPI
[单片机]
创建keil工程并点亮STM32板子的LED灯
打开之前创建的工程,如下图所示(keil工程的创建在之前的文章中有,不了解的同学可以翻一下上一篇文章。) (上图是已经建立完成的工程) 然后,再次打开我们之前下载的对应开发板版本的例程包中的点亮LED灯的例程 (路径为:en.stsw-stm32077 \STM32L1xx_StdPeriph_Lib_V1.3.1 \project\STM32L1xx_StdPeriph_Examples \GPIO \IOToggle) 找到mian.c文件打开,全选复制里面的内容 再回到我们之前已经创建完毕的工程中,打开mian.c文件清空,并将GPIO文件中的main.c里面的内容粘贴到我们工程的mian.c中。 此时可以看到有很多
[单片机]
STM32_ps2键盘显示测试程序
//PS2键盘测试程序,可换行,按shift不放接着输入 //可输出大写,按下CAPS输出大写,再次按下输出小写 //此程序只用来测试,代码冗余,仅供参考,可根据需要自行删减 //PA13- PS2.CLK PA15- PS2.DATA #include stm32f10x_lib.h #include sys.h #include usart.h #include delay.h #include led.h #include key.h #include exti.h #include wdg.h #include timer.h #include lcd.h
[单片机]
STM32实例-步进电机的速度控制
项目需求 在制作一个使用全向轮的机器人底盘,对于全向轮,电机的精度是影响效果的重要因素。所以使用了步进电机,使用步进电机的优点是可以不使用编码器,开环控制即可达到高精度的效果。 调整占空比或者调整周期 众所周知,PWM有两个重要参数,周期与占空比。 步进电机的运动方式是,每收到一个脉冲,就旋转指定的角度。因此影响电机速度的唯一参数就是PWM的频率。以下附图两张来说明调整占空比与调整周期的区别。 周期固定,调整占空比 上图中有4个PWM,它们的周期是一样的,不同之处是拥有从80%至20%的占空比。可以看出,无论占空比为多少,在1s内,它们产生的高电平的数量是一样的,即无论占空比为多少,PWM的频率都一致。因此也就无法调整
[单片机]