This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
我浏览了 TRM、了解了可以使用 baseAddr = 0x00600000 (GPIO0)处的寄存器控制 GPIO。
在 GPIO 配置为输入/输出/PU/GPIO / PD 等后、您可以写入 GPIO_SET_DATAyy 寄存器以定义组中哪些位是 H/L。
使用上述寄存器写入、可以在一条指令中设置多个 GPIO 引脚 H/L。
抱歉、暂时没有浏览头文件、
但我想知道 GPIO API 是否也支持使用单个 API 函数调用设置多个 GPIO? 例如...
GPIO_pinWriteHigh(baseAddr, 0b0011);
是否可以这样做、或者是否需要使用寄存器写入?
您好 Keito、
感谢您的提问。
[报价 userid="576362" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1385995/am2431-controlling-multiple-gpio-in-single-api-call "]我当时想知道 GPIO API 是否还支持使用单个 API 函数调用设置多个 GPIO?遗憾的是、没有 API 可用于一次写入多个 GPIO 引脚。 向多个 GPIO 引脚写入高电平/低电平的唯一选项是直接写入寄存器值。
请注意-一次只能写入2个连续的 GPIO 组(即32个 GPIO)引脚。 可一次写入的 GPIO 组寄存器分为以下对-[01、23、45]。
希望上述信息对您有所帮助。
此致、
Tushar
另外、我想知道存储体和 GPIO 编号方式。
表5-41和表5-42列出了 GPIO。
GPIO0有87个 GPIO 引脚。
GPIO1有80个 GPIO 引脚。
TRM (第1.3.9节)指出、GPIO 实例具有9个组、每个组具有16个 GPIO。
TRM 中的 GPIO 寄存器显示可以控制9个组中的每一个(即 GPIO_SET_DATAyy 可以设置每个组中的引脚)
我不明白各组和 GPIO 引脚编号之间的匹配。
GPIO0 (baseAddr = 0x00600000)组0 = GPIO0_0 ~ GPIO0_15吗?
数据表(表5-41)指出 GPIO0_86是最后一个 GPIO0 GPIO。
按照这种理解、GPIO0_86将由 GPIO0组5控制?
但这意味着未使用组6 ~组8?
对于 GPIO1 (仅具有 GPIO0_79)、这将在 GPIO1组4处达到最大值……
这种理解是否正确?
尊敬的 Keito:
[报价 userid="576362" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1385995/am2431-controlling-multiple-gpio-in-single-api-call/5298219 #5298219"]表5-41和表5-42列出了 GPIO。请参阅 第12.1.2.1.2节 GPIO 不支持的特性 状态 TRM以了解 GPIO 不支持的功能。
从下面的屏幕截图中可以看出、GPIO0_[87:143]未引脚输出。 同样、对于 GPIO1_[88:143]引脚、未引脚输出。
请参阅下面的屏幕截图。
是的、以上详细信息正确。 GPIO1_[80:87]引脚配置为 ADC、无法在中使用 GPIO MODE。 该引脚只能在中使用 GPI MODE。
请参阅下面的 GPIO 信号详细屏幕截图。
希望上述信息对您有所帮助。
此致、
Tushar
尊敬的 Tushar:
完美;我有一个想法现在如何前进。 谢谢!
尊敬的 Keito:
完美;我现在有一个如何前进的想法。
感谢您的确认。
很乐意提供帮助
此致、
Tushar