精华内容
下载资源
问答
  • 对于三种基本的输入输出方式
    千次阅读
    2021-01-16 13:39:26

    第1关:重要的事情说三遍

    1.这里结合的一个具体场景是:程序接受一个输入字符,然后将该字符输出三遍,再输出一个!。

    // 包含标准输入输出函数库
    #include <stdio.h>
    
    // 定义main函数
    int main()
    {
        // 请在此添加‘重要的事情说三遍’的代码
        /********** Begin *********/
        char x=getchar();
        putchar(x);
        putchar(x);
        putchar(x);
        putchar('!');
        
    
        /********** End **********/
        return 0;
    }
    

    第2关:整数四则运算表达式的输出格式控制

    2.假设要输入两个四位数以内的整数,然后对两个整数进行四则运算(为保证除法能正确计算,输入的第二个整数不能为 0 ),并对齐输出四则运算的完整表达式。

    //包含标准输入输出函数库
    #include <stdio.h>
    
    int main()
    {
        //声明两个整型变量,用于存储输入的两个整数
        int x,y;
    
        //请在此添加你的代码,输入两个整数到x、y中,然后按要求格式输出四则运算式子
        /********** Begin *********/
    	scanf("%d",&x);
        scanf("%d",&y);
    	int a=x+y;
    	int b=x-y;
    	int c=x*y;
    	int d=x/y;
        printf("%5d + %-5d = %10d\n",x,y,a);
    	prin
    更多相关内容
  • GPIO输入输出模式原理(八工作方式附电路图详解)

    万次阅读 多人点赞 2021-07-05 14:20:50
    浮空输入模式 上拉输入模式 下拉输入模式 模拟输入模式 开漏输出模式 开漏复用输出模式 推挽输出模式 推挽复用输出模式

    STM32F1xx官方资料:
    《STM32中文参考手册V10》-第8章通用和复用功能IO(GPIO和AFIO )
    芯片数据手册(datasheet)

    STM32引脚说明

    GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。

    STM32的大部分引脚除了当GPIO使用之外,还可以复用位外设功能引脚(比如串口),这部分在【STM32】STM32端口复用和重映射(AFIO辅助功能时钟) 中有详细的介绍。

    GPIO种类

    本博板子STM32F103ZET6共有7组IO口,每组16个,共16×7=112个,分别为:
    GPIOA——>PA0、PA1、PA2…PA15
    GPIOB——>PB0、PB1、PB2…PB15
    .
    .
    .
    GPIOG——>PG0、PG1、PG2、…PG15

    GPIO基本结构

    每个GPIO内部都有这样的一个电路结构,这个结构在本文下面会具体介绍。

    这边的电路图稍微提一下:

    • 保护二极管:IO引脚上下两边两个二极管用于防止引脚外部过高、过低的电压输入。当引脚电压高于VDD时,上方的二极管导通;当引脚电压低于VSS时,下方的二极管导通,防止不正常电压引入芯片导致芯片烧毁。但是尽管如此,还是不能直接外接大功率器件,须加大功率及隔离电路驱动,防止烧坏芯片或者外接器件无法正常工作。
    • P-MOS管和N-MOS管:由P-MOS管和N-MOS管组成的单元电路使得GPIO具有“推挽输出”和“开漏输出”的模式。这里的电路会在下面很详细地分析到。
    • TTL肖特基触发器:信号经过触发器后,模拟信号转化为0和1的数字信号。但是,当GPIO引脚作为ADC采集电压的输入通道时,用其“模拟输入”功能,此时信号不再经过触发器进行TTL电平转换。ADC外设要采集到的原始的模拟信号。

    这里需要注意的是,在查看《STM32中文参考手册V10》中的GPIO的表格时,会看到有“FT”一列,这代表着这个GPIO口时兼容3.3V和5V的;如果没有标注“FT”,就代表着不兼容5V

    GPIO输入输出的8种模式

    GPIO支持4种输入模式(浮空输入、上拉输入、下拉输入、模拟输入)和4种输出模式(开漏输出、开漏复用输出、推挽输出、推挽复用输出)。同时,GPIO还支持三种最大翻转速度(2MHz、10MHz、50MHz)。

    每个I/O口可以自由编程,但I/O口寄存器必须按32位字被访问。

    程序中标识模式
    GPIO_Mode_AIN模拟输入
    GPIO_Mode_IN_FLOATING浮空输入
    GPIO_Mode_IPD下拉输入
    GPIO_Mode_IPU上拉输入
    GPIO_Mode_Out_OD开漏输出
    GPIO_Mode_Out_PP推挽输出
    GPIO_Mode_AF_OD复用开漏输出
    GPIO_Mode_AF_PP复用推挽输出

    下面将具体介绍GPIO的这八种工作方式:

    上拉输入模式

    在这里插入图片描述

    默认情况下输入引脚数据为1,高电平。

    上拉输入模式下,I/O端口的电平信号直接进入输入数据寄存器。但是在I/O端口悬空(在无信号输入)的情况下,输入端的电平保持在高电平(自己理解:上拉电阻连接电压);并且在I/O端口输入为低电平的时候,输入端的电平也是低电平(自己理解:上拉电阻上的电压和端口导通)。

    施密特触发器:施密特就是为了防止在某一个临界电平的情况出现各种情况的抖动出现,为了稳定我们的输出而设计的。
    施密特触发器采用电位触发方式,其状态由输入信号电位维持;对于负向递减和正向递增两种不同变化方向的输入信号,施密特触发器有不同的阈值电压。

    下拉输入模式

    默认情况下输入引脚为0,低电平。

    下拉输入模式下,I/O端口的电平信号直接进入输入数据寄存器。但是在I/O端口悬空(在无信号输入)的情况下,输入端的电平保持在低电平;并且在I/O端口输入为高电平的时候,输入端的电平也是高电平。

    浮空输入模式

    浮空输入模式下,I/O端口的电平信号直接进入输入数据寄存器。也就是说,I/O的电平状态是不确定的,完全由外部输入决定;如果在该引脚悬空(在无信号输入)的情况下,读取该端口的电平是不确定的。

    通常用于IIC、USART。

    模拟输入模式

    模拟输入模式下,I/O端口的模拟信号(电压信号,而非电平信号)直接模拟输入到片上外设模块,比如ADC模块等。模拟信号一般:3.3v 5v 9v。

    开漏输出模式

    在这里插入图片描述
    可以输出0和1,适用于电平不匹配场合,要得到高电平需要上拉电阻才行。

    开漏输出模式下(上拉电阻+N-MOS管),通过设置位设置/清除寄存器或者输出数据寄存器的值,途经N-MOS管,最终输出到I/O端口。这里要注意N-MOS管,当设置输出的值为高电平的时候,N-MOS管处于关闭状态,此时I/O端口的电平就不会由输出的高低电平决定,而是由I/O端口外部的上拉或者下拉决定;当设置输出的值为低电平的时候,N-MOS管处于开启状态,此时I/O端口的电平就是低电平。同时,I/O端口的电平也可以通过输入电路进行读取;注意,I/O端口的电平不一定是输出的电平。

    开漏复用输出模式

    开漏复用输出模式,与开漏输出模式很是类似。只是输出的高低电平的来源,不是让CPU直接写输出数据寄存器,取而代之利用片上外设模块的复用功能输出来决定的。

    片内外设功能:TX1,MOSI,MISO,SCK,SS

    推挽输出模式

    在这里插入图片描述

    可以输出高低电平0和1,适用于双向IO使用。

    推挽输出模式下(P-MOS管+N-MOS管),通过设置位设置/清除寄存器或者输出数据寄存器的值,途经P-MOS管和N-MOS管,最终输出到I/O端口。这里要注意P-MOS管和N-MOS管,当设置输出的值为高电平的时候,P-MOS管处于开启状态,N-MOS管处于关闭状态,此时I/O端口的电平就由P-MOS管决定:高电平;当设置输出的值为低电平的时候,P-MOS管处于关闭状态,N-MOS管处于开启状态,此时I/O端口的电平就由N-MOS管决定:低电平。同时,I/O端口的电平也可以通过输入电路进行读取;注意,此时I/O端口的电平一定是输出的电平。

    推挽复用输出模式

    推挽复用输出模式,与推挽输出模式很是类似。只是输出的高低电平的来源,不是让CPU直接写输出数据寄存器,取而代之利用片上外设模块的复用功能输出来决定的。

    片内外设功能IIC的SCL、SDL

    模式用途

    1、 GPIO_Mode_AIN :模拟输入

    一般用于ADC模拟输入

    2、GPIO_Mode_IN_FLOATING :浮空输入

    可用于按键KEY实验、发送接收信号RX、TX、IIC、USART等,不过这些实验可以不用浮空输入,如KEY用到上拉和下拉

    3、GPIO_Mode_IPD:下拉输入

    4、GPIO_Mode_IPU:上拉输入

    IO内部上拉电阻、下拉电组输入,使情况而定,比如刚刚说的key按键实验,原理图如下:
    在这里插入图片描述
    可以看到KEY_UP按下后,IO口应该是3V3电平输入,未按下时为悬空状态,而悬空状态IO输入是未知的,所以为了防止程序跑飞,采用下拉输入,在悬空状态下,使IO输入下拉到低电平。这样,在悬空状态下,IO检测到的是低电平,不会去执行key_up按下后的程序。

    KEY0~2按下后,IO口是低电平输入。按下时为悬空状态,而悬空状态IO输入是未知的,所以为了防止程序跑飞,采用上拉输入,在悬空状态下,使IO输入上拉到高电平。这样,在悬空状态下,IO检测到的是高电平,不会去执行KEY0 ~2按下后的程序。

    5、GPIO_Mode_Out_OD:开漏输出

    IO 输出 0 接 GND,IO 输出 1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为 1 时,IO 口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样 IO 口也就可以 由外部电路改变为低电平或不变。该模式适用于电平不匹配场合、适合做电流型的驱动,吸收电流能力比较强。

    6、GPIO_Mode_Out_PP:推挽输出

    可以输出高、低电平。导通损耗小、效率高。既提高电路的负载能力,又提高开关速度。广泛各种实验,比如接下来要总结的LED。

    7、GPIO_Mode_AF_OD:复用开漏输出

    当GPIO为复用IO时的开漏输出模式,一般用于外设功能,如TX1

    8、GPIO_Mode_AF_PP:复用推挽输出

    当GPIO为复用IO时的推挽输出模式,一般用于外设功能,如I2C

    总结与分析

    1、什么是推挽结构和推挽电路

    推挽结构一般是指两个参数相同的三极管或MOS管分别受两互补信号的控制,总是在一个三极管或MOS管导通的时候另一个截止。高低电平由输出电平决定。

    推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务。电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。

    2、开漏输出和推挽输出的区别

    在这里插入图片描述

    • 开漏输出:只可以输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极。适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内);
    • 推挽输出:可以输出强高、低电平,连接数字器件。

    关于推挽输出和开漏输出,最后用一幅最简单的图形来概括:

    该图中左边的便是推挽输出模式,其中比较器输出高电平时下面的PNP三极管截止,而上面NPN三极管导通,输出电平VS+;当比较器输出低电平时则恰恰相反,PNP三极管导通,输出和地相连,为低电平。右边的则可以理解为开漏输出形式,需要接上拉。

    3、在STM32中选用怎样选择I/O模式

    • 浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别,RX1
    • 带上拉输入_IPU——IO内部上拉电阻输入
    • 带下拉输入_IPD—— IO内部下拉电阻输入
    • 模拟输入_AIN ——应用ADC模拟输入,或者低功耗下省电
    • 开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能
    • 推挽输出_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
    • 复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL、SDA)
    • 复用功能的开漏输出_AF_OD——片内外设功能(TX1、MOSI、MISO.SCK.SS)
    展开全文
  • 在这种方式下,利用查询方式进行输入输出,就是通过CPU执行程序查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据, 2、中断方式 由程序控制1/O的方法,其主要缺点在于CPU必须等待I/O系统完成...

    1、直接程序控制(无条件传送/程序查询方式)

    1.1、无条件传送:

    在此情况下,外设总是准备好的,它可以无条件地随时接收CPU发来的输出数据,也能够无条件地随时向CPU提供需要输入的数据。

    1.2、程序查询方式:

    在这种方式下,利用查询方式进行输入输出,就是通过CPU执行程序查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据,

    2、中断方式

    由程序控制1/O的方法,其主要缺点在于CPU必须等待I/O系统完成数据传输任务,在此期间CPU需要定期地查询l/O系统的恶状态,以确认传输是否完成。因此整个系统的性能严重下降。

    3、直接主存存取(Direct Memory Access,DMA)

    是指数据在主存与I/O设备间的直接成块传送,即在主存与I/O设备间传送数据块的过程中,不需要CPU作任何干涉,只需在过程开始启动(即向设备发出“传送一块数据”的命令)与过程结束(CPU通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时由CPU进行处理,实际操作由DMA硬件直接完成,CPU在传送过程中可做别的事情。

    eg:
    ●计算机系统中常用的输入/输出控制方式有无条件传送、中断、程序查询和 DMA 方式等。当采用(3)方式时,不需要 CPU 执行程序指令来传送数据。
    A.中断 B.程序查询 C.无条件传送 D.DMA

    展开全文
  • Python的基本输入输出函数

    千次阅读 2022-01-16 20:56:26
    、print()函数 一、input函数 获得用户输入之前,input函数可以包含一些提示性文字 input()返回的是字符串 <变量>=input(<提示性文字>) >>>a=input("请输入一个小数:") 请输入一个小数...

    目录

    一、input函数

    二、eval()函数

    三、print()函数


    一、input函数

    获得用户输入之前,input函数可以包含一些提示性文字

    input()返回的是字符串

    <变量>=input(<提示性文字>)

    >>>a=input("请输入一个小数:")
    请输入一个小数123.456
    >>>print(a)#此时a是字符串"123.456"
    123.456

    二、eval()函数

    1)eval(<字符串>)函数是Python语言中一个十分重要的函数,它能够以Python表达式的方式解析并执行字符串,将返回结果输出

    >>>a=eval("1.2+3.4")
    >>>print(a)
    4.6

    2)eval()函数经常和input()函数一起使用,用来获取用户输入的数字,使用方式如下:

    <变量>=eval(input("提示性文字"))

    >>>value=eval(input("请输入要计算的数值:"))
    请输入要计算的数值:1024.256
    >>>print(value*2)
    2047.512

    三、print()函数

    print()函数用于输出运算结果,根据输出内容的不同,有三种用法。

    1)仅用于输出字符串,使用方法如下:

                            print(<待输出字符串>)

    >>>print("世界和平")
    世界和平

    2)仅用于输出一个或多个变量,使用方式如下:

                    print(<变量1>,<变量2>,...,<变量n>)

    >>>value=123.456
    >>>print(value, value, value)
    123.456 123.456 123.456

    3)用于混合输出字符串与变量值,使用方式如下:

    print(<输出字符串模板>.format(<变量一>,<变量二>,...,<变量n>))

    >>>a,b=123.456,1024
    >>>print("数字{}和数字{}的乘积是{}".format(a,b,a*b))
    数字123.456和数字1024得乘积是126417.944

    4)对print()函数的end参数进行赋值

    print(<待输出内容>,end="<增加的输出结尾>")

    >>>a=24
    >>>print(a,end=".")
    24.
    >>>print(a,end="%")
    24%

    展开全文
  • 信号输入的数字量连接PLC的方式以及注意事项。 (1)数字量的传感器从原理上分为两PNP和NPN的,对应不同接法的PLC,尽量不要混用,有些麻烦。其实就是输出的电压不同,对于程序编程没有影响。 (2)数字传感器从...
  • 计算机组成原理——输入输出系统

    千次阅读 2022-04-05 21:38:11
    输入输出系统 5.1 概述 一、输入输出系统的发展概况 早期 分散连接 CPU 和 I/O设备串行工作 程序查询方式 接口模块和 DMA 阶段 总线连接 CPU 和 I/O设备 并行 工作 中断方式 DMA 方式 具有通道结构的...
  • Java的常用输入输出语句

    万次阅读 多人点赞 2018-04-14 19:03:38
    一、概述 输入输出可以说是计算机的基本功能。作为一语言体系,java中主要按照流(stream)的模式来实现。其中数据的流向是按照计算机的方向确定的,流入计算机的数据流叫做输入流(inputStream),由计算机发出的...
  • C语言的基本输入输出函数的用法

    千次阅读 2019-05-07 21:24:57
    用法 printf(“字符串”); printf(“输出控制符”, 输出参数); printf(“输出控制符1 输出控制符2 …”, 输出参数1, 输出参数2, …); printf(“输出控制符 非输出控制符”, 输出参数); 输出控制符包含如下:...
  • 当我们使用Verilog HDL代码来描述硬件功能的时候,可采用三种不同方式或混合方式对设计进行建模,这些方式包括:结构化方式—使用门和模块实例语句描述建模;数据流方式—使用连续赋值语句方式建模;行为描述方式—...
  • 版信息系统项目管理师47个过程的输入输出及工具
  • 一、概述输入输出可以说是计算机的基本功能。作为一语言体系,java中主要按照流(stream)的模式来实现。其中数据的流向是按照计算机的方向确定的,流入计算机的数据流叫做输入流(inputStream),由计算机发出的数据...
  • 6. Python基础:输入输出语句介绍

    千次阅读 2021-04-01 01:27:19
    输入函数input():从控制台获得用户输入 grade = input("请输入你的成绩:") 输出函数print():以字符形式向控制台输出结果 grade = input("请输入你的成绩:") print(grade) print()函数的3主要使用方法 ...
  • C语言中常用的六大输入输出函数

    千次阅读 2020-06-06 10:07:43
    我们在使用C语言的时候碰的最多的就是输入输出的函数,你们是否还记得我们写的第一个程序hello world,从这个程序开始我们就开始使用输入输出的函数,一直到你的代码生涯的结束这个输入输出都还在你的身边。...
  • 基于C# winform的操作系统课程设计:SPOOLING假脱机输入输出技术模拟
  • 晶体管单管放大电路的三种基本接法比较

    千次阅读 多人点赞 2020-09-03 16:57:52
    晶体管单管放大电路的三种基本接法的特点归纳如下: (1)共射电路既能放大电流又能放大电压,输人电阻居三种电路之中,输出电阻较大,频带较窄。常作为低频电压放大电路的单元电路。 (2)共集电路只能放大电流不能放大...
  • C/C++对文件的基本输入输出

    万次阅读 多人点赞 2018-08-08 20:15:24
    C语言文件输入输出 1. 打开文本基本格式: FILE *变量名=fopen(“文件名”, ”打开方式”); 如:FILE *fp=fopen(“test.txt”, ”r”); 可以理解为生成了一个FILE类型的指针变量fp,指向了以只读方式打开的文件...
  • C语言程序三种基本结构

    万次阅读 2018-01-03 19:27:19
    文章中介绍C语言程序执行过程中最基本三种结构,包括有:顺序结构、分支结构、循环结构。理解和学习程序的执行过程,对于以后学习其他的编程语言,或者程序的调试,程序调Bug都有很好的帮助。 程序是什么? ...
  • C语言中的输入输出流和缓冲区(重点)详解

    万次阅读 多人点赞 2019-01-01 13:21:56
    C语言中我们用到的最频繁的输入输出方式就是scanf()与printf()。 scanf(): 从标准输入设备(键盘)读取数据,并将值存放在变量中。 printf(): 将指定的文字/字符串输出到标准输出设备(屏幕)。注意宽度输出和精度 ...
  • 4三种基本类型(批处理、分时、实时) 5OS特征(并发、共享、虚拟、异步) 6程序执行(顺序执行、并发执行) 操作系统概述 1定义 程序的集合 控制管理计算机软硬件资源 合理组织计算机工作流程 2动力 提高...
  • 1.eval()函数去掉最外侧...) 能够以Python表达式的方式解析并执行字符串,并将返回结果输出。eval()函数将去掉字符串的两个引号,将其解释为一个变量。单引号,双引号,eval()函数都将其解释为int类型;引号则解释...
  • JavaScript嵌入页面的三种方式

    万次阅读 2018-05-05 15:00:36
    JS代码要嵌入到页面中,有三种方式可以选择:内嵌式、外链式和行间事件。第一:内嵌式JS代码可以以规定的格式嵌入到html页面的&lt;html&gt;,&lt;head&gt;,&lt;body&gt;不同的位置中,其中...
  • 深入理解C++输入输出

    万次阅读 多人点赞 2016-01-19 23:36:06
    因为C++兼容C,所以C中的输入输出函数依然可以在C++中使用,但是很显然如果直接把C的那套输入输出搬到C++中肯定无法满足C++的需求,第一点也是最重要的一点那就是C中的输入输出有类型要求,只支持基本类型,很显然这...
  • C语言之输入输出

    万次阅读 多人点赞 2019-04-30 00:03:47
    输入输出 在C语言中,有个函数可以用来在显示器上输出数据,它们分别是: puts():只能输出字符串,并且输出结束后会自动换行。 putchar():只能输出单个字符。 printf():可以输出各种类型的数据,在前面的很多...
  • Shell脚本自动输入密码的三种方式

    千次阅读 热门讨论 2019-11-08 15:06:25
    下面总结三种实现方法。 一、重定向:用重定向方法实现交互的前提是指令需要有参数来指定密码输入方式,如ftp就有-i参数来指定使用标准输入输入密码 shell用重定向作为标准输入的用法是:cmd<&...
  • 基本输入输出和文件输入输出 文件名和文件对象 本节介绍所举的例子都是传递的文件名,也可以传递已经打开的文件对象. 例如对于load和save函数来说,如果使用文件对象的话,可以将多个数组储存到一个npy文件中: ...
  • 【Java入门练习100例】02.键盘输入——三种方式

    万次阅读 热门讨论 2021-10-10 17:58:52
    键盘输入 数学运算函数 类型转换
  • 本片将介绍单个字符数组的输入输出方式与相关函数。并在同一专栏会有多个字符串输入输出处理的相关内容。 目录 输入 逐个元素输入 整体串形式输入 输出 逐个输出 整体串形式输出 任一元素开始串形式输出...
  • 【Java 输入输出流】

    千次阅读 多人点赞 2021-04-15 17:02:47
    Java 输入输出流(I/O流)1 File类1.1 文件的属性1.2 目录2 文件字节输入输出流二级目录级目录3 文件字符输入输出流二级目录级目录4 缓冲流二级目录级目录 概述:输入输出流提供一条通道程序,可以...
  • * 在input与cards之间 数值型变量输出格式 w.d,commaw.d和percentw.d w.d和输入使用相同 commaw.d的作用是将数值的整数部分自右向左每位用逗号隔开,当数值位数较多时,这是比较标准的表示方式。 percentw.d的...
  • 计算机本身只能识别二进制数,所有输入输出的数据都会首先被转换成二进制后,计算机才能进行正常的读取、存储和显示等。计算机内部只能处理二进制的数字,但是在输入的时候计算机会有程序将非二进制的数据转为二进制...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 624,301
精华内容 249,720
热门标签
关键字:

对于三种基本的输入输出方式