单片机输入输出模式

这篇具有很好参考价值的文章主要介绍了单片机输入输出模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


单片机输入输出模式

输入模式

模拟输入、浮空输入、上拉输入、下拉输入

模拟输入:I/O端口的模拟信号(电压信号,并非电平信号)直接模拟输入到片上外设模块(比如ADC模块)。

浮空输入:I/O端口的电平信号直接输入数据寄存器。

上拉输入: I/O端口的电平信号直接进入输入数据寄存器,但是在I/O端口悬空(无信号输入)的情况下,输入端的电平保持在高电平。

下拉输入: I/O端口的电平信号直接进入输入数据寄存器,但是在I/O端口悬空(无信号输入)的情况下,输入端的电平保持在低电平。

例如STM32F103的固件库中的模式选择:

typedef enum
{ GPIO_Mode_AIN = 0x0,
  GPIO_Mode_IN_FLOATING = 0x04,
  GPIO_Mode_IPD = 0x28,
  GPIO_Mode_IPU = 0x48,
  GPIO_Mode_Out_OD = 0x14,
  GPIO_Mode_Out_PP = 0x10,
  GPIO_Mode_AF_OD = 0x1C,
  GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;

讲解:

- GPIO_Mode_AIN:模拟输入模式,用于输入模拟信号。

- GPIO_Mode_IN_FLOATING: 浮空输入模式,用于输入数字信号,不进行上拉或下拉处理。 一般不使用(比较危险)。

- GPIO_Mode_IPD: 带下拉电阻的输入模式,用于输入数字信号,进行上拉电阻处理。 在IO口悬空时输入端保持低电平状态。

- GPIO_Mode_IPU: 带上拉电阻的输入模式,用于输入数字信号,进行下拉电阻处理。 在IO口悬空时输入端保持在高电平状态。

GPIO输出模式

推挽输出、开漏输出、复用推挽输出、复用开漏输出。

推挽输出(常用):使用P-MOS、N-MOS管,当输出高电平时P-MOS处于开启状态,N-MOS关闭(同一时刻只有一个MOS管导通);输出低电平时P-MOS关闭,N-MOS处于导通状态。注意:输出高电平为VDD值。

开漏输出:只使用N-MOS管,输出高电平时N-MOS关闭,此时输出电平为端口电压值(I/O端口的上拉或者下拉决定);输出低电平时N-MOS导通,输出低电平(接地)。

复用推挽输出:输出高低电平的值由片上外设决定。

复用开漏输出:输出高低电平的值由片上外设决定。
单片机输入输出模式
例如:


- GPIO_Mode_Out_OD: 开漏输出模式,用于输出数字信号,开漏输出相当于输出信号时接地,而非控制电压。 

- GPIO_Mode_Out_PP: 推挽输出模式,用于输出数字信号,输出信号电平由控制电压和接地电平共同决定。 该模式比较常用, 推挽输出模式下(P-MOS管+N-MOS管),通过设置位设置/清除寄存器或者输出数据寄存器的值,途经P-MOS管和N-MOS管,最终输出到I/O端口。同时,I/O端口的电平也可以通过输入电路进行读取;此时I/O端口的电平一定是输出的电平。

- GPIO_Mode_AF_OD: 开漏复用输出模式,用于复用GPIO,可以将GPIO和外设输出信号共享一个IO口,使CPU可以控制不同的引脚发出相同的信号。 

- GPIO_Mode_AF_PP: 推挽复用输出模式,也用于复用GPIO。和GPIO_Mode_AF_OD相比,不同的是输出信号通过推挽电路发送。常用于实现不同的外设共享一个IO口,并进行数字信号的输入输出。

上下拉电阻

上拉电阻

将一个不确定的电平(高或者低电平)通过一个电阻和电源VCC相连,固定在高电平。
推荐视频:【上拉电阻的通俗解释,你真正知道吗?】 https://www.bilibili.com/video/BV1W34y1579U/?share_source=copy_web&vd_source=2cb045100a1d2262e05f55bab3533d18

下拉电阻

将一个不确定的电平(高或者低电平)通过一个电阻和电源GND相连,固定在低电平。
推荐视频:【下拉电阻的通俗解释,你真正知道吗?】 https://www.bilibili.com/video/BV1ZU4y1Q7eo/?share_source=copy_web&vd_source=2cb045100a1d2262e05f55bab3533d18

参考文章:https://blog.csdn.net/zhuguanlin121/article/details/118489092?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167705219216800222884641%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=167705219216800222884641&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogsobaiduend~default-2-118489092-null-null.blog_rank_default&utm_term=gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86&spm=1018.2226.3001.4450文章来源地址https://www.toymoban.com/news/detail-449005.html

到了这里,关于单片机输入输出模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 32单片机基础:GPIO输入

    按键介绍: 两种方式,我们一般用下接的方式。 第一个图:注意点。当按键按下,PA0接地,被置为低电平, 但是一旦按键松手,PA0悬空,引脚电压不确定。所以无论怎么读引脚也不知道知否被按下,所以为了解决这个问题,所以必须要求PA0是上拉输入的模式,这样引脚悬空

    2024年02月22日
    浏览(38)
  • stm32单片机/51单片机蜂鸣器不响(proteus模拟)

    1提高蜂鸣器电阻,这样根据分压原理,可以提升蜂鸣器2段电压 2更改蜂鸣器的工作电压为更小的值,这个可以通过在proteus内设置探针查看电压值,更改为其值就可以了 我觉得如果不是仿真的话,蜂鸣器额定电压是不能改的,如果电压不够的话好像就只能够选用合适的三极管

    2024年02月11日
    浏览(44)
  • 单片机C语言实例:14、音频输出

    一、喇叭发声原理 程序实例1: 二、警车声音 程序实例2: 三、救护车声音 程序实例3: 四、喇叭滴答声 程序实例4: 五、报警声音 程序实例5: 六、消防车警报 程序实例6: 七、音乐播放 程序实例7:

    2024年01月20日
    浏览(39)
  • 单片机 0~10V 输出电路的实现

    好久没有上电路小课堂的课了,也是最近项目遇到的需求,想着正好做个电路记录总结。 当然本文的电路以前我也不是全部用过,但是既然写了,那么我肯定给他画个实际的板子,每个都测试一遍。 本次的电路小课堂主要内容就是: 使用单片机如何实现 0 ~ 10V 的信号输出。

    2023年04月21日
    浏览(37)
  • 单片机IO模拟串口协议

            嵌入式硬件平台调试中常用的debug方法是看串口打印定位问题,但有时候会遇到单片机没有串口外设或者串口引脚被占用的情况,这时候也可以在代码里操作空闲的IO输出不同个数的脉冲来达到调试的效果,但是要用逻辑分析仪抓线逐个看波形比较费劲。既然都IO抖线

    2024年02月10日
    浏览(45)
  • 51单片机生成模拟正弦波

    首先打开proteus软件,如图导入各个元器件,并连线。  然后编写c程序,看下面的代码。经过测试了,可以放心使用。 最后就是编译成hex文件,导入proteus中,仿真运行,就能得到下面的正弦波形了。  下面在写一个怎么生成三角波形的程序  程序代码看下面,很简单的。 最

    2024年02月13日
    浏览(38)
  • STM32单片机-输入捕获、FFT测频

    本内容介绍基于STM32F103VET6的一个实际工程中添加采集A相电压信号或B相电流信号频率的功能,分别通过输入捕获与FFT实现,均测试可用。紫色文字是超链接,点击自动跳转至相关博文。持续更新,原创不易! 一、硬件连接 1、电压信号处理电路仿真 2、单片机连接 二、程序部

    2024年02月16日
    浏览(36)
  • 51单片机LED模拟交通灯

    实验软件 : Keil5 + Proteus7 实验元件 : AT89C51 * 1, LED-GRD * 3, LED-YELLOW * 3, LED-GREEN * 3, RES * 9 (用来限流可以不要)

    2024年02月11日
    浏览(50)
  • 【单片机】STM32单片机,定时器的输入捕获,基于捕获的频率计,STM32F103

    下面的定时器都具有输入捕获能力: 查看另一篇文章:https://qq742971636.blog.csdn.net/article/details/131471539 外部计数频率计的缺点:需要两个定时器配合,最高能测量的频率是否有限制我没具体尝试。 基于捕获的频率计的缺点:最高能测量的频率有限制。 TIM3_CH1 PWM PA6 10KHZ。 输入

    2024年02月14日
    浏览(58)
  • 基于单片机的多路输出数控直流稳压电源设计与实现

    本次设计中数控稳压电源的设计要求如下: (1)数控稳压电源系统输入电压为15V,输出0-12V,最大输出电流为2A; (2)输出电压纹波不大于200mV; (3)可对输出电压进行预置;可对输出电压进行加减,其步进电压为0.1V; (4)实现人机交互,通过按键可对设定电压与输出电

    2024年02月07日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包