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.

[参考译文] 编译器/TM4C1233H6PM:将不同端口的引脚串联到一条总线中

Guru**** 1788580 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/565845/compiler-tm4c1233h6pm-concatenation-of-pins-of-different-ports-into-one-bus

器件型号:TM4C1233H6PM

工具/软件:TI C/C++编译器

引脚存在缺陷、 由于我在项目中将8个引脚用于其他用途、所有8个引脚都未使用、因此没有可用端口。 我是否可以通过任何方法将一个端口的4个引脚和另一个端口的4个引脚用作16x2 LCD 的数据总线?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,Muhammad

    是的、您可以使用相同的、但在执行位段操作时、请确保 LCD 的时序保持不变。 此外、在进行访问时、请确保 GPIOPinWrite 为每个端口使用正确的引脚集。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    公司/我已经(准确)完成了此海报的目标。 (即从2个(甚至3个)独立 GPIO 端口收集总共8个引脚)

    我不确定是否需要"位带"-海报将从(单独) MCU 端口连接/连接4位到相应的 LCD、8位、数据总线。   这需要单独的 MCU 端口写入。   只有在8位(数据)存在且稳定之后-应该切换 LCD 的"E"信号。   (详情如下)

    在这种情况下、必须确保所有(组合) 8引脚数据准备就绪且稳定-并且(仅在那时)切换显示屏的"E"引脚。 如果"控制信号端口"与任何提供 LCD 数据的端口重复、则会出现问题。 "E"信号必须单独切换、唯一切换、这会影响"其他" LCD 引脚。  (使用 R/W 时、也不应使用"RS"或"R/W")

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您还可以考虑使用 SPI 从现有用法中删除引脚。 对于许多用途、此速度足够快、并且只需使用几个引脚即可实现大量 I/O。 这样、您就可以为特殊功能(PWM 等)保留 I/O 引脚 和高速要求。

    Robert
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    海报罗伯特(再次)提出了一个最有效的选择。

    您的初始 MCU 设计(通常)应在关键/关键引脚/功能"预留"时按键-理想情况下、这些引脚/功能(仅限)可从 MCU 获得。 例如 PWM、I2C、SPI、UART、计时器输入/输出等。

    GPIO 已(有意)从此框架中移除-它们可(轻松)从基于 SPI/I2C 的"GPIO 扩展器 IC"中再生。 此外、同一个 SPI 信号链可实现"多个这样的 GPIO 扩展器 IC"-实现(几乎)无限的 GPIO 扩展...

    当"拆分"MCU 端口-组装到"正常"8位端口时、软件会变得更加复杂-正如您之前提到的...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 CB1

    我指的是每个端口使用的一组引脚的位带端口。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amit、您好!

    位段方法是否可以将 LCD (8位数据)写入从2个(4位写入、2个不同端口)减少到1个(8位段)写入? 在这种情况下-增加的位带复杂性似乎是值得的。 如果(仍然)两个端口写入保持不变-那么我将"位带"标记为"不那么多"。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果我理解(以及为什么要重复它)位段、就不需要任何预屏蔽、而是需要移位和写入多个端口。

    IE 移位、掩码、读取、掩码 或、 写入变为移位、写入
     
    Robert

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您的理解与我的理解类似、因此位带的优势是、当合成时、"一个、从两个更宽的数据端口(更小的、位端口写入)"会显得很轻微。   (或者-我的理解有点小)

    供应商的 API 很好地提供了所选端口位的"隔离和传输"。    "来自不同端口的两个或多个此类"位隔离和传输"的影响似乎削弱了位带带来的(任何)好处!