程序员能够对所有硬件引脚进行编程吗?

Dvorak1990 2018-02-26 05:37:23
了解到硬件的对外接口是一系列引脚,部分引脚可以组成端口,端口与寄存器对应,因此程序员可以对硬件端口进行编程。
请问,
1)是否硬件中的所有引脚都是作为某个端口的一部分而存在吗?
2) 如果存在不属于任何io端口的引脚,它对程序员可见吗?程序员能对这些引脚进行编程吗?
...全文
519 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
不及恐失 2018-03-07
  • 打赏
  • 举报
回复
并不能,你总不能对电源脚和地脚进行编程吧。
nettman 2018-03-05
  • 打赏
  • 举报
回复
这要看芯片手册的说明
龙隽电子科技 2018-03-05
  • 打赏
  • 举报
回复
肯定不是所有的,是可编程的才能控制,所有的IO都能控制,电源供电之类的一般是不行的。
杨奎 2018-03-02
  • 打赏
  • 举报
回复
看芯片手册怎么描述的
jklinux 2018-03-01
  • 打赏
  • 举报
回复
引用 13 楼 worldy 的回复:
[quote=引用 12 楼 of123 的回复:] 实际上,凡是用作 I/O 的引脚,都可以设计成兼容 GPIO。要看设计时是否这样做。当然,有些特殊引脚的某些方向是特殊的,比如 Reset 引脚,一般不会设置为 GPIO 输入。 凡是兼容模式的引脚,实际上是通过多路开关控制的。当在芯片内部的 GPIO 控制模块使能某一引脚为 GPIO 时,实际是实现了通路的切换。 我公司的几款芯片,就是将大多数 I/O 引脚都设计为兼容 GPIO 的。不仅如此,这些引脚设置为输入时,还支持外部中断。 用某一款芯片的设计来证明其他设计不可行,是非常幼稚的。 别和我争。你不过是用芯片的,我们是设计芯片的。
[/quote]
nettman 2018-03-01
  • 打赏
  • 举报
回复
看芯片手册,芯片手册上面都有详细说明
worldy 2018-02-28
  • 打赏
  • 举报
回复
引用 12 楼 of123 的回复:
实际上,凡是用作 I/O 的引脚,都可以设计成兼容 GPIO。要看设计时是否这样做。当然,有些特殊引脚的某些方向是特殊的,比如 Reset 引脚,一般不会设置为 GPIO 输入。 凡是兼容模式的引脚,实际上是通过多路开关控制的。当在芯片内部的 GPIO 控制模块使能某一引脚为 GPIO 时,实际是实现了通路的切换。 我公司的几款芯片,就是将大多数 I/O 引脚都设计为兼容 GPIO 的。不仅如此,这些引脚设置为输入时,还支持外部中断。 用某一款芯片的设计来证明其他设计不可行,是非常幼稚的。 别和我争。你不过是用芯片的,我们是设计芯片的。
jklinux 2018-02-27
  • 打赏
  • 举报
回复
引用 8 楼 jklinux 的回复:
[quote=引用 7 楼 worldy 的回复:]
[quote=引用 5 楼 jklinux 的回复:]
基本上每个io口都会作为某种功能的接口而存在,但不是所有的io口都可以作gpio供编程使用的,如ADC的输入引脚一般都是专用的,不能作gpio使用.


这个说法感觉不准确,ADC引脚如果你没有定义ADC功能,那么仍然是可以当做普通IO来使用的[/quote]

不会啊,三星芯片里的adc引脚就是专用的,没得设置其它功能[/quote]



jklinux 2018-02-27
  • 打赏
  • 举报
回复
引用 7 楼 worldy 的回复:
[quote=引用 5 楼 jklinux 的回复:] 基本上每个io口都会作为某种功能的接口而存在,但不是所有的io口都可以作gpio供编程使用的,如ADC的输入引脚一般都是专用的,不能作gpio使用.
这个说法感觉不准确,ADC引脚如果你没有定义ADC功能,那么仍然是可以当做普通IO来使用的[/quote] 不会啊,三星芯片里的adc引脚就是专用的,没得设置其它功能
worldy 2018-02-27
  • 打赏
  • 举报
回复
引用 5 楼 jklinux 的回复:
基本上每个io口都会作为某种功能的接口而存在,但不是所有的io口都可以作gpio供编程使用的,如ADC的输入引脚一般都是专用的,不能作gpio使用.
这个说法感觉不准确,ADC引脚如果你没有定义ADC功能,那么仍然是可以当做普通IO来使用的
worldy 2018-02-27
  • 打赏
  • 举报
回复
1)是否硬件中的所有引脚都是作为某个端口的一部分而存在吗? 如果你将某个引脚定义为特殊功能,那么这个引脚就不能作为端口使用 2) 如果存在不属于任何io端口的引脚,它对程序员可见吗?程序员能对这些引脚进行编程吗? 如果不是定义为端口,就要按特定功能的操作方式操作,比如,UART功能,你只能使用向uart寄存器写数据或者读数据方式操作端口
jklinux 2018-02-27
  • 打赏
  • 举报
回复
基本上每个io口都会作为某种功能的接口而存在,但不是所有的io口都可以作gpio供编程使用的,如ADC的输入引脚一般都是专用的,不能作gpio使用.
of123 2018-02-27
  • 打赏
  • 举报
回复
完全取决于芯片的设计以及封装选择(哪些引脚实际引出)。有些芯片对于其中一些(甚至是大部分)原来属于某些模块的引脚赋予 GPIO 功能。
fly 100% 2018-02-27
  • 打赏
  • 举报
回复
这个都是在芯片设计的时候就确定的,跟设计有关
ckc 2018-02-27
  • 打赏
  • 举报
回复
具体问题具体分析,不能一概而论 有些脚是接电源的,有些脚是接地的,有些脚是接晶振啥的,还有些脚也有特殊功能,并不一定受控制 你应该关心你需要用的那个芯片的情况就可以了,别想太多
of123 2018-02-27
  • 打赏
  • 举报
回复
实际上,凡是用作 I/O 的引脚,都可以设计成兼容 GPIO。要看设计时是否这样做。当然,有些特殊引脚的某些方向是特殊的,比如 Reset 引脚,一般不会设置为 GPIO 输入。 凡是兼容模式的引脚,实际上是通过多路开关控制的。当在芯片内部的 GPIO 控制模块使能某一引脚为 GPIO 时,实际是实现了通路的切换。 我公司的几款芯片,就是将大多数 I/O 引脚都设计为兼容 GPIO 的。不仅如此,这些引脚设置为输入时,还支持外部中断。 用某一款芯片的设计来证明其他设计不可行,是非常幼稚的。 别和我争。你不过是用芯片的,我们是设计芯片的。
jklinux 2018-02-27
  • 打赏
  • 举报
回复
引用 10 楼 mozart_cai 的回复:
[quote=引用 5 楼 jklinux 的回复:] 基本上每个io口都会作为某种功能的接口而存在,但不是所有的io口都可以作gpio供编程使用的,如ADC的输入引脚一般都是专用的,不能作gpio使用.
ADC是数模转换控制器的意思吗?[/quote] 是的, A表示模拟信号,D数字信号, C转换器
Dvorak1990 2018-02-27
  • 打赏
  • 举报
回复
引用 5 楼 jklinux 的回复:
基本上每个io口都会作为某种功能的接口而存在,但不是所有的io口都可以作gpio供编程使用的,如ADC的输入引脚一般都是专用的,不能作gpio使用.
ADC是数模转换控制器的意思吗?
笨狗先飞 2018-02-26
  • 打赏
  • 举报
回复
有些是人为的空置脚,意义可能仅仅是占个位。
将Arduino与Node-RED接口以监控网页上的温度和湿度。 硬件部件 Arduino UNO × 1个 DHT11温湿度传感器(4针) × 1个 软件应用程序和在线服务 Arduino IDE Node-RED是非程序员使用物联网的可视化工具,可用于更快地构建应用程序并减少IoT产品的“上市时间”。Node-RED可用于以新颖有趣的方式轻松地将硬件设备,API和其他在线服务连接在一起。Node-RED是一种开源物联网工具,已由IBM Emerging Technology组织实施。它是用JavaScript编写的,并且可以在NodeJS平台上工作。 Node-RED采用基于模块的方法,其中图形化连接了预定义模块以在Node-RED上执行操作序列,换句话说,它使用预定义端口号直接访问Arduino,Raspberry Pi等微控制器板的数据。或密码。在本教程中,我们将使用Arduino将DHT11传感器读数发送到Node-RED仪表板。同样,我们还将Arduino与ThingSpeak连接在一起,以设计气象站。 在本教程中,我们将仅关注Arduino和Node-RED 。在整个教程中,我们将介绍如何在Windows上安装和设置Node-RED 。然后,我们还将在Node-RED上设计一个仪表板,并使用不同的输入,输出和功能节点来创建流。 下面显示了将DHT11传感器与Arduino接口的电路图,该原理图是使用Fritzing软件绘制的。 DHT11是一种流行的3针传感器,可以测量温度和湿度。该传感器采用单线协议工作,易于与Arduino等开发板一起使用。DHT11的Vcc引脚与Arduino的3.3v引脚连接,而GND引脚与Arduino的GND引脚连接。当数据引脚与Arduino的第二引脚连接时。连接完成后,我的硬件如下所示 如您所见,我使用简单的母对公连接线进行连接。完整的设置由连接到我的计算机的USB端口供电。我们之前将DHT11与Arduino连接以构建IOT气象站。
什么有六条腿,是非常烦人的?好吧,我猜很多东西。但现在有一个基于6引脚ATtiny10微控制器。 这是一个便宜和容易的恶作剧设备。把任何一台电视附近,等待WTF的哭声! 细节基本上这是这样的: 等待,直到它检测到一个遥控信号。 记录信号并等待30秒。 重新发送信号。 播放一个你可能听过的令人愉快的小调。 为什么这么烦人?想象一下,坐下来看电视。你点击遥控器上的电源按钮。30秒后,电视机意外关闭。如果这还不够,那么你就有机会听到你最喜欢的歌曲的简短的方波演绎。 可是等等!在你把所有东西放在一起之前,记住你必须能够编程这个东西。这个硬件设置不是程序员友好的,所以在焊接之前确保你在芯片上有程序。我将芯片焊接到分线板上,编程,然后放下。 编写代码提出了各种各样的挑战。我反复超过了1024字节的限制,不得不优化一些东西。而且,只有32个字节的内存,我必须非常小心。我结束了使用这些字节中的22个来保存IR信号的时序和序列信息。这个堆栈在任何地方都没有使用超过8个字节,这给我留下了2个额外的安心字节。 汇编代码包含在文件部分。调整或延迟时间间隔很容易,但是您必须通过代码挖掘才能完成。有些事情要注意的是: - tiny10在等待时进入掉电休眠模式,所以不会烧毁电池。 - 只要没有长度大于12ms,它就会记录多达64位加上一个标题脉冲。据我所知,这涵盖了任何常见的远程协议。 - 记录四个时间值:标题开,标题关,长时间,短时间,长时间关机,短时间关机。
中断服务程序设计实验 2.7.1 实验目的 1、 熟悉中断的概念、中断响应过程、中断向量表以及系统是如何根据中断类型号在中断向量表中得到该中断对应的中断服务程序的入口地址等内容。 2、 掌握中断服务程序的设计方法。 2.7.2 实验预习要求 1、 复习中断的有关内容。 2、 复习中断服务程序设计方法。 3、 读懂“2.7.4 实验内容”中给出的源程序,以便上机调试。 4、 从“2.7.5 实验习题”中任选一道题目,编写源程序,以便上机调试。 2.7.3 中断服务程序设计方法简介 由2.6节中的中断向量表可以看出,PC中断系统中中断类型可分为三类: 磁盘操作系统DOS提供的中断服务程序,中断类型号从20H到2FH; 系统主板BIOS芯片提供的BIOS中断服务程序,包括系统内部中断,中断类型号从00H到07H;系统8级外部中断,中断类型号从08H到0FH,它们对应于接在可编程中断控制器8259A的8个中断请求输入端IR0IR7的8个外部中断,其中IR2(中断类型号0AH)为系统保留,用户可通过该引脚实现对用户所需的外部硬件中断的管理;设备驱动程序,中断类型号从10H到1FH等; 用户定义的中断,中断类型号从60H到7FH、F1H到FFH。用户可根据实际需要将某些通用性强的子程序功能通过中断服务程序来实现。一旦设置好了这样的中断服务程序,在其他应用程序中就可以调用这些中断服务程序。 设计中断服务程序的步骤如下: 1、 选择一个中断类型号 如果采用硬件中断,则要使用硬件决定的中断类型号。在PC机系统中,使用了一片可编程中断控制器8259A来对外部硬件中断进行管理,具体内容参见教材264页“8259A应用举例”,可以看出IR2为系统保留,其中断类型号为0AH。若用户需要,可将用户所需的外部中断源发来的中断请求信号接到IR2,编写该中断所需的中断服务程序,并将该中断服务程序的入口地址写到中断向量表0AH4AH4+3四个单元中,这样,当接在IR2上的外部中断源发来中断请求信号时,系统就会根据得到的类型号(0AH)到中断向量表中找出其入口地址,并转去执行该中断服务程序。 如果采用软件中断,即利用执行int n指令的方式执行中断服务程序,则可从系统预留给用户的中断类型号60H7FH、F1HFFH中选择一个。 2、 将中断服务程序的入口地址置入中断向量表的相应的四个存储单元中 确定了中断类型号,还要把中断服务程序入口地址置入中断向量表,以保证在中断响应时CPU能自动转入与该类型号相对应的中断服务程序。下面介绍两种将中断服务程序入口地址置入中断向量表的方法。 (1) 直接装入法 用传送指令直接将中断服务程序首地址置入矢量表中。设中断类型号为60H(此类型号对应的矢量表地址为从00180H开始的四个连续存储单元)。 PUSH DS XOR AX,AX MOV DS,AX ;将数据段寄存器清零 MOV AX,OFFSET INT60 ;将中断服务程序INT60所在段内的偏移地址送AX MOV DS:[0180H],AX ;将中断服务程序偏移地址送中断向量表00180H和00181单元 MOV AX,SEG INT60 ;将中断服务程序INT60所在段的段地址送AX MOV DS:[0180H+2],AX ;将中断服务程序所在代码段的段地址送00182H和00183单元 POP DS (2) DOS系统功能调用法 功能号(AH)=25H; 入口参数:(AL)=中断类型号, (DS)=中断服务程序入口地址的段地址 (DX)=中断服务程序入口地址的偏移地址 下面程序段完成中断类型号为60H的入口地址置入。 PUSH DS ;保护DS MOV DX,OFFSET INT60 ;取服务程序偏移地址 MOV AX,SEG INT60 ;取服务程序段地址 MOV DS,AX MOV AH,25H ;送功能号 MOV AL,60H ;送中断类型号 INT 21H ;DOS功能调用 POP DS ;恢复DS 3、 使中断服务程序驻留内存,以便其他应用程序调用 实现这一步骤的必要性在于:一旦中断服务程序驻留内存后,一般程序员使用这一新增的中断调用就如同调用DOS或BIOS的中断子程序一样,只要了解其入口要求和返回参数就可调用。程序驻留在内存后,它占用的存储区就不会被其他软件覆盖。使程序驻留内存,要求该程序以 .COM形式运行,这种种结构的程序要求入口定位于100H,并且数据和代码均在同一个段内,这样,.COM程序就被定位于低地址区,DOS常在低地址区增加驻留程序,而 .EXE程序被定位于高地

27,370

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧