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.

[参考译文] CCS/TMS570LS0432:如何启用 GIO 端口引脚?

Guru**** 2480155 points
Other Parts Discussed in Thread: LAUNCHXL-TMS57004, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/699232/ccs-tms570ls0432-how-to-enable-gio-port-pin

器件型号:TMS570LS0432
主题中讨论的其他器件:LAUNCHXL-TMS57004HALCOGEN

工具/软件:Code Composer Studio

我不熟悉 TI Hercules 产品线。 我使用的是 LAUNCHXL-TMS57004板。 我的第一步是验证 GIO。 我已尝试通过调用以下命令使 GIOA2上的 D12 LED 闪烁:

   //    1.将 GIOA2配置为输出:
   gioPORTA->DIR = 0x00000004;//位2
   //    2.将此引脚设置为高电平
   gioPORTA->DSET = 0x00000004;//bit 2
   //    3.将此引脚复位为低电平
   gioPORTA->DCLR = 0x00000004;//位2

第一个观察结果是、在设置这些寄存器的值并检查它们的内容后、内容不包含我分配给它们的值。

我还尝试了:

   gioSetDirection (gioPORTA、0xFFFFFFFF);
   gioSetBit (gioPORTA、2、1);
   gioSetPort (gioPORTA、1);

但运气不好。 我是否错过了一个技巧?

   Ken

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

    GIODSET 和 GIODCLR 寄存器始终反映 GIODOUT 寄存器的内容。 一旦一个引脚被配置为输出引脚、GIODOUT 寄存器将始终反映相应引脚的状态。 因此、如果 GIO 引脚为低电平、GIODSET/CLR/OUT 寄存器中的相应位将读取0。

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

    在调用这两个函数之前:

    [CortexR4] gioPORTA address = 0xfff7bc34
    gioPORTA->DCLR = 0x00000000
    gioPORTA->DIN = 0x00000002
    gioPORTA->DIR = 0x00000000
    gioPORTA->DOUT = 0x00000000
    gioPORTA->DSET = 0x00000000
    gioPORTA->PDR = 0x00000000
    gioPORTA->PSL = 0x00000000
    gioPORTA->PULDIS = 0x00000000

    呼叫后

    gioPORTA->DIR = 0x00000004;//位2
    gioPORTA->DSET = 0x00000004;//bit 2

    [CortexR4] gioPORTA 地址= fff7bc34
    gioPORTA->DCLR = 0x00000000
    gioPORTA->DIN = 0x00000002
    gioPORTA->DIR = 0x00000000
    gioPORTA->DOUT = 0x00000000
    gioPORTA->DSET = 0x00000000
    gioPORTA->PDR = 0x00000000
    gioPORTA->PSL = 0x00000000
    gioPORTA->PULDIS = 0x00000000

    gioPORTA->DIR 尚未从0x00000002更改为0x00000004和
    gioPORTA->DOUT 仍为0x00000000

    再次感谢、

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

    这两个函数是否是 main()函数的一部分? 您是否使用 HALCoGen 生成了 GIO 驱动程序? 它将创建一个 gioInit()函数,您需要在其他函数之前执行该函数。 默认情况下、该模块处于复位状态、需要在尝试写入控制寄存器之前从复位状态中释放该模块。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    就是这样! 我知道它必须是一个简单的东西。 感谢您的帮助!!!!