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.

[参考译文] TMS320F28027:AIO 引脚作为输出

Guru**** 2522770 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/984241/tms320f28027-aio-pins-as-output

器件型号:TMS320F28027

尊敬的团队:

我尝试将 AIO10和 AIO12引脚定义为输出引脚、但每次我获得逻辑低电平。 根据数据表、我将按如下方式设置引脚:

//
//初始化此应用程序所需的所有句柄
//
myClk = clk_init ((void*) clk_base_ADDR、sizeof (clk_Obj));
myCpu = cpu_init ((void*) NULL、sizeof (cpu_Obj));
myFlash = flash_init ((void*) flash_base_ADDR、sizeof (flash_Obj));
myGpio = GPIO_init ((void*) GPIO_base_ADDR、sizeof (GPIO_Obj));
myPie = PI_init ((void*) PIE_BASE_ADDR、sizeof (PIE_Obj));
myPll = PLL_init (((void*) PLL_base_ADDR、sizeof (PLL_Obj));
myWdDog = WDOG_INIT ((void*) WDOG_BASE_ADDR、sizeof (WDOG_Obj));
PWM_handler = PWM_init (((void*) PWM_ePWM1_base_ADDR、sizeof (PWM_Obj));
myAdc = ADC_init ((void*) ADC_base_ADDR、sizeof (ADC_Obj));

//
//执行基本系统初始化
//
WDOG_DISABLE (myWDog);
CLK_enableAdcClock (myClk);
(* Device_cal )();
clk_disableAdcClock (myClk);

//
//选择内部振荡器1作为时钟源
//
CLK_setOscSrc (myClk、CLK_OscSrc_Internal);

//
//将 PLL 设置为 x10 /2、这将产生50MHz = 10MHz * 10/2
//
PLL_setup (myPll、PLL_Multiplier_10、PLL_DivideSelect_CLKIN_BY_2);

//
//禁用 PIE 和所有中断
//
PIE_DISABLE (myPie);
PI_DisableAllInts (myPie);
CPU_disableGlobalInts (myCpu);
CPU_clearIntFlags (myCpu);

//
//如果从闪存运行,则只将 RAM 复制到 RAM
//
#ifdef _flash
memcpy (&RamfuncsRunStart、&RamfuncsLoadStart、(size_t)&RamfuncsLoadSize);
#endif

EALLOW;

GpioDataRegs.AIOSET.bit.AIO12=1;
GpioCtrlRegs.AIOMUX1.bit.AIO12=0;
GpioCtrlRegs.AIODIR.bit.AIO12=1;

EDIS;

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

如果我弄错了、请让我来。 如果您有 AIO 输出引脚的任何示例代码、请分享。

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

    6365971、

    AIO 的配置就像 GPIO 的配置减去内部上拉电阻、因此您的 AIO 配置看起来应该正常工作。  

    您是否有任何东西连接到此引脚? 请注意、读取 AIODAT 将报告引脚上的电压、而不是输出缓冲器尝试驱动的状态。 因此、如果您有一个强下拉电阻或其他强制该引脚为低电平、那么即使您已使用 AIOSET 寄存器将 AIO12设置为高电平、读取 AIODAT 也将为0。

    此致、
    Cody