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/TMS570LS1224:使用 Halcogen 配置 MIBSPI5

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/727176/ccs-tms570ls1224-configuring-mibspi5-with-halcogen

器件型号:TMS570LS1224
主题中讨论的其他器件:HALCOGEN

工具/软件:Code Composer Studio

您好!

我正在尝试使用 TMS570LS1224的 MIBSPI1和 MIBSPI5模块。 我使用 Halcogen 生成了驱动程序代码,但 mibSpiInit()函数只初始化 mibspiREG1寄存器。 它是 Halcogen 错误、还是有办法正确执行它。

Halcogen 版本为:04.06.00

void mibspiInit (void)
{
uint32 i;

//用户代码开始(2)*/
//*用户代码结束*/


/**@b 初始化@b MIBSPI1 */

/**使 MIBSPI 退出复位*/
mibspiREG1->GCR0 = 0U;
mibspiREG1->GCR0 = 1U;

/**启用 MIBSPI1多缓冲模式并启用缓冲 RAM */
mibspiREG1->MIBSPIE =(mibspiREG1->MIBSPIE & 0xFFFFFFFEU)| 1U;

/** MIBSPI1主模式和时钟配置*/
mibspiREG1->GCR1 =(mibspiREG1->GCR1 & 0xFFFFFFFCU)|((uint32)((uint32) 1U << 1U)/* CLOKMOD */
| 1U);/*主设备*/

/** MIBSPI1使能引脚配置*/
mibspiREG1->INT0 =(mibspiREG1->INT0 & 0xFEFFFFFFU)|(uint32)((uint32) 0U << 24U);//启用 HICHZ */

/**-延迟*/
mibspiREG1->delay =(uint32)((uint32) 0U <<24U)/* C2TDELAY */
|(UINT32)((UINT32) 0U <<16U)/* T2CDELAY */
|(UINT32)((UINT32) 0U <<8U)/* T2EDELAY */
|(uint32)((uint32) 0U << 0U);// C2EDELAY *

/**-数据格式0 */
mibspiREG1->FMT0 =(uint32)((uint32) 0U <<24U)/* wdelay */
|(uint32)((uint32) 0U << 23U)/*奇偶校验极性*/
|(uint32)((uint32) 0U << 22U)/*奇偶校验使能*/
|(uint32)((uint32) 0U << 21U)//等待启用
|(uint32)((uint32) 0U << 20U)/*移位方向*/
|(uint32)((uint32) 1U << 17U)/*时钟极性*/
|(uint32)((uint32) 0U << 16U)/*时钟相位*/
|(uint32)((uint32) 15U << 8U)/*波特率预分频*
|(uint32)((uint32) 14U << 0U);/*数据字长度*/

/**-数据格式1 */
mibspiREG1->FMT1 =(uint32)((uint32) 0U <<24U)/* wdelay */
|(uint32)((uint32) 0U << 23U)/*奇偶校验极性*/
|(uint32)((uint32) 0U << 22U)/*奇偶校验使能*/
|(uint32)((uint32) 0U << 21U)//等待启用
|(uint32)((uint32) 0U << 20U)/*移位方向*/
|(uint32)((uint32) 0U << 17U)/*时钟极性*/
|(uint32)((uint32) 0U << 16U)/*时钟相位*/
|(uint32)((uint32) 79U << 8U)/*波特率预分频*
|(uint32)((uint32) 16U << 0U);/*数据字长度*/

/**-数据格式2 */
mibspiREG1->FMT2 =(uint32)((uint32) 0U <<24U)/* wdelay */
|(uint32)((uint32) 0U << 23U)/*奇偶校验极性*/
|(uint32)((uint32) 0U << 22U)/*奇偶校验使能*/
|(uint32)((uint32) 0U << 21U)//等待启用
|(uint32)((uint32) 0U << 20U)/*移位方向*/
|(uint32)((uint32) 0U << 17U)/*时钟极性*/
|(uint32)((uint32) 0U << 16U)/*时钟相位*/
|(uint32)((uint32) 79U << 8U)/*波特率预分频*
|(uint32)((uint32) 16U << 0U);/*数据字长度*/

/**-数据格式3 */
mibspiREG1->FMT3 =(uint32)((uint32) 0U <<24U)/* wdelay */
|(uint32)((uint32) 0U << 23U)/*奇偶校验极性*/
|(uint32)((uint32) 0U << 22U)/*奇偶校验使能*/
|(uint32)((uint32) 0U << 21U)//等待启用
|(uint32)((uint32) 0U << 20U)/*移位方向*/
|(uint32)((uint32) 0U << 17U)/*时钟极性*/
|(uint32)((uint32) 0U << 16U)/*时钟相位*/
|(uint32)((uint32) 79U << 8U)/*波特率预分频*
|(uint32)((uint32) 16U << 0U);/*数据字长度*/

/**-默认芯片选择*/
mibspiREG1->DEF =(uint32)(0xFFU);

/**-在访问 MibSPI 寄存器之前等待缓冲器初始化完成*/
/*SAFETYMCUSW 28 D MR:NA "硬件状态位读取检查"*/
while ((mibspiREG1->FLG & 0x01000000U)!= 0U)
{
} /*等待*/

/**启用 MIBSPI RAM 奇偶校验*/
mibspiREG1->UERRCTRL =(mibspiREG1->UERRCTRL & 0xFFFFFFF0U)|(0x00000005U);

/**-初始化传输组*/
mibspiREG1->TGCTRL[0U]=(uint32)((uint32) 1U << 30U)/* OneShot *
|(UINT32)((UINT32) 0U << 29U)/* pcurrent reset */
|(UINT32)((UINT32) TRG_Always << 20U)/*触发事件*/
|(UINT32)((UINT32) TRG_DISABLED << 16U)/*触发源*/
|(uint32)((uint32) 0U << 8U);//开始缓冲区

mibspiREG1->TGCTRL[1U]=(uint32)((uint32) 1U <<30U)/* OneShot *
|(UINT32)((UINT32) 0U << 29U)/* pcurrent reset */
|(UINT32)((UINT32) TRG_Always << 20U)/*触发事件*/
|(UINT32)((UINT32) TRG_DISABLED << 16U)/*触发源*/
|(uint32)((uint32) 1U << 8U);/*启动缓冲器*/

mibspiREG1->TGCTRL[2U]=(uint32)((uint32) 1U <<30U)/* OneShot *
|(UINT32)((UINT32) 0U << 29U)/* pcurrent reset */
|(UINT32)((UINT32) TRG_Always << 20U)/*触发事件*/
|(UINT32)((UINT32) TRG_DISABLED << 16U)/*触发源*/
|(uint32)((uint32)(1U+0U)<< 8U);//开始缓冲区

mibspiREG1->TGCTRL[3U]=(uint32)((uint32) 1U <<30U)/* OneShot *
|(UINT32)((UINT32) 0U << 29U)/* pcurrent reset */
|(UINT32)((UINT32) TRG_Always << 20U)/*触发事件*/
|(UINT32)((UINT32) TRG_DISABLED << 16U)/*触发源*/
|(uint32)((uint32)(1U+0U+0U)<<8U);//开始缓冲区

mibspiREG1->TGCTRL[4U]=(uint32)((uint32) 1U <<30U)/* OneShot *
|(UINT32)((UINT32) 0U << 29U)/* pcurrent reset */
|(UINT32)((UINT32) TRG_Always << 20U)/*触发事件*/
|(UINT32)((UINT32) TRG_DISABLED << 16U)/*触发源*/
|(uint32)((uint32)(1U+0U+0U+0U)<<8U);//开始缓冲区

mibspiREG1->TGCTRL[5U]=(uint32)((uint32) 1U << 30U)/* OneShot *
|(UINT32)((UINT32) 0U << 29U)/* pcurrent reset */
|(UINT32)((UINT32) TRG_Always << 20U)/*触发事件*/
|(UINT32)((UINT32) TRG_DISABLED << 16U)/*触发源*/
|(uint32)((uint32)(1U+0U+0U+0U+0U+0U)<<8U);//开始缓冲区

mibspiREG1->TGCTRL[6U]=(uint32)((uint32) 1U << 30U)/* OneShot *
|(UINT32)((UINT32) 0U << 29U)/* pcurrent reset */
|(UINT32)((UINT32) TRG_Always << 20U)/*触发事件*/
|(UINT32)((UINT32) TRG_DISABLED << 16U)/*触发源*/
|(uint32)((uint32)(1U+0U+0U+0U+0U+0U+0U)<<8U);//开始缓冲区

mibspiREG1->TGCTRL[7U]=(uint32)((uint32) 1U << 30U)/* OneShot *
|(UINT32)((UINT32) 0U << 29U)/* pcurrent reset */
|(UINT32)((UINT32) TRG_Always << 20U)/*触发事件*/
|(UINT32)((UINT32) TRG_DISABLED << 16U)/*触发源*/
|(uint32)((uint32)(1U+0U+0U+0U+0U+0U+0U+0U+0U)<<8U);/*启动缓冲器*/


mibspiREG1->TGCTRL[8U]=(uint32)(1U+0U+0U+0U+0U+0U+0U+0U+0U+0U+0U+0U+0U)<< 8U;

mibspiREG1->LTGPEND =(mibspiREG1->LTGPEND & 0xFFFF00FFU)|(uint32)(((uint32)((((1U+0U+0U+0U+0U+0U+0U+0U+0U+0U+0U+0U+0U+0U+1U+1U-0U)-1U)-1U))<<8U

/**-初始化缓冲区 RAM */
{
I = 0U;

#IF (1U > 0U)
{

#if (1U > 1U)

while (I <(1U-1U))
{
mibspiRAM1->TX[i].control =(uint16)((uint16) 4U <<13U)/*缓冲模式*/
|(uint16)((uint16) 0U << 12U)/*芯片选择保持*/
|(uint16)((uint16) 0U << 10U)//启用 WDELAY *
|(uint16)((uint16) 0U << 11U)/*锁定传输*/
|(uint16)((uint16) 0U << 8U)/*数据格式*/
* SAFETYMCUSW 334 S MR:10.5 "LDRA 工具问题"*/
|((uint16)(~((uint16) 0xFFU ^(uint16) CS_0))和(uint16) 0x00FFU);/*芯片选择*
i++;
}
#endif
mibspiRAM1->TX[i].control =(uint16)((uint16) 4U <<13U)/*缓冲模式*/
|(uint16)((uint16) 0U << 12U)/*芯片选择保持*/
|(uint16)((uint16) 0U << 10U)//启用 WDELAY *
|(uint16)((uint16) 0U << 8U)/*数据格式*/
* SAFETYMCUSW 334 S MR:10.5 "LDRA 工具问题"*/
|((uint16)(~((uint16) 0xFFU ^(uint16) CS_0))和(uint16) 0x00FFU);/*芯片选择*


i++;
}
#endif

(0U > 0U)
{

#if (0U > 1U)

while (I <((1U+0U)-1U))
{
mibspiRAM1->TX[i].control =(uint16)((uint16) 4U <<13U)/*缓冲模式*/
|(uint16)((uint16) 0U << 12U)/*芯片选择保持*/
|(uint16)((uint16) 0U << 10U)//启用 WDELAY *
|(uint16)((uint16) 0U << 11U)/*锁定传输*/
|(uint16)((uint16) 0U << 8U)/*数据格式*/
* SAFETYMCUSW 334 S MR:10.5 "LDRA 工具问题"*/
|((uint16)(~((uint16) 0xFFU ^(uint16) CS_1)和(uint16) 0x00FFU);/*芯片选择*

i++;
}
#endif
mibspiRAM1->TX[i].control =(uint16)((uint16) 4U <<13U)/*缓冲模式*/
|(uint16)((uint16) 0U << 12U)/*芯片选择保持*/
|(uint16)((uint16) 0U << 10U)//启用 WDELAY *
|(uint16)((uint16) 0U << 8U)/*数据格式*/
* SAFETYMCUSW 334 S MR:10.5 "LDRA 工具问题"*/
|((uint16)(~((uint16) 0xFFU ^(uint16) CS_1)和(uint16) 0x00FFU);/*芯片选择*

i++;
}
#endif

(0U > 0U)
{

#if (0U > 1U)

while (I <((1U+0U+0U)-1U))
{
mibspiRAM1->TX[i].control =(uint16)((uint16) 4U <<13U)/*缓冲模式*/
|(uint16)((uint16) 0U << 12U)/*芯片选择保持*/
|(uint16)((uint16) 0U << 10U)//启用 WDELAY *
|(uint16)((uint16) 0U << 11U)/*锁定传输*/
|(uint16)((uint16) 0U << 8U)/*数据格式*/
* SAFETYMCUSW 334 S MR:10.5 "LDRA 工具问题"*/
|((uint16)(~((uint16) 0xFFU ^(uint16) CS_2))和(uint16) 0x00FFU);/*芯片选择*

i++;
}
#endif
mibspiRAM1->TX[i].control =(uint16)((uint16) 4U <<13U)/*缓冲模式*/
|(uint16)((uint16) 0U << 12U)/*芯片选择保持*/
|(uint16)((uint16) 0U << 10U)//启用 WDELAY *
|(uint16)((uint16) 0U << 8U)/*数据格式*/
* SAFETYMCUSW 334 S MR:10.5 "LDRA 工具问题"*/
|((uint16)(~((uint16) 0xFFU ^(uint16) CS_2))和(uint16) 0x00FFU);/*芯片选择*

i++;
}
#endif

(0U > 0U)
{

#if (0U > 1U)

while (I <((1U+0U+0U+0U)-1U))
{
mibspiRAM1->TX[i].control =(uint16)((uint16) 4U <<13U)/*缓冲模式*/
|(uint16)((uint16) 0U << 12U)/*芯片选择保持*/
|(uint16)((uint16) 0U << 10U)//启用 WDELAY *
|(uint16)((uint16) 0U << 11U)/*锁定传输*/
|(uint16)((uint16) 0U << 8U)/*数据格式*/
* SAFETYMCUSW 334 S MR:10.5 "LDRA 工具问题"*/
|((uint16)(~((uint16) 0xFFU ^(uint16) CS_3))和(uint16) 0x00FFU);/*芯片选择*

i++;
}
#endif
mibspiRAM1->TX[i].control =(uint16)((uint16) 4U <<13U)/*缓冲模式*/
|(uint16)((uint16) 0U << 12U)/*芯片选择保持*/
|(uint16)((uint16) 0U << 10U)//启用 WDELAY *
|(uint16)((uint16) 0U << 8U)/*数据格式*/
* SAFETYMCUSW 334 S MR:10.5 "LDRA 工具问题"*/
|((uint16)(~((uint16) 0xFFU ^(uint16) CS_3))和(uint16) 0x00FFU);/*芯片选择*

i++;
}
#endif

(0U > 0U)
{

#if (0U > 1U)

while (I <((1U+0U+0U+0U+0U+0U)-1U))
{
mibspiRAM1->TX[i].control =(uint16)((uint16) 4U <<13U)/*缓冲模式*/
|(uint16)((uint16) 0U << 12U)/*芯片选择保持*/
|(uint16)((uint16) 0U << 10U)//启用 WDELAY *
|(uint16)((uint16) 0U << 11U)/*锁定传输*/
|(uint16)((uint16) 0U << 8U)/*数据格式*/
* SAFETYMCUSW 334 S MR:10.5 "LDRA 工具问题"*/
|((uint16)(~((uint16) 0xFFU ^(uint16) CS_4))和(uint16) 0x00FFU);/*芯片选择*

i++;
}
#endif
mibspiRAM1->TX[i].control =(uint16)((uint16) 4U <<13U)/*缓冲模式*/
|(uint16)((uint16) 0U << 12U)/*芯片选择保持*/
|(uint16)((uint16) 0U << 10U)//启用 WDELAY *
|(uint16)((uint16) 0U << 8U)/*数据格式*/
* SAFETYMCUSW 334 S MR:10.5 "LDRA 工具问题"*/
|((uint16)(~((uint16) 0xFFU ^(uint16) CS_4))和(uint16) 0x00FFU);/*芯片选择*

i++;
}
#endif

(0U > 0U)
{

#if (0U > 1U)

while (I <((1U+0U+0U+0U+0U+0U+0U)-1U))
{
mibspiRAM1->TX[i].control =(uint16)((uint16) 4U <<13U)/*缓冲模式*/
|(uint16)((uint16) 0U << 12U)/*芯片选择保持*/
|(uint16)((uint16) 0U << 10U)//启用 WDELAY *
|(uint16)((uint16) 0U << 11U)/*锁定传输*/
|(uint16)((uint16) 0U << 8U)/*数据格式*/
* SAFETYMCUSW 334 S MR:10.5 "LDRA 工具问题"*/
|((uint16)(~((uint16) 0xFFU ^(uint16) CS_5))和(uint16) 0x00FFU);/*芯片选择*

i++;
}
#endif
mibspiRAM1->TX[i].control =(uint16)((uint16) 4U <<13U)/*缓冲模式*/
|(uint16)((uint16) 0U << 12U)/*芯片选择保持*/
|(uint16)((uint16) 0U << 10U)//启用 WDELAY *
|(uint16)((uint16) 0U << 8U)/*数据格式*/
* SAFETYMCUSW 334 S MR:10.5 "LDRA 工具问题"*/
|((uint16)(~((uint16) 0xFFU ^(uint16) CS_5))和(uint16) 0x00FFU);/*芯片选择*

i++;
}
#endif

(0U > 0U)
{

#if (0U > 1U)

while (I <((1U+0U+0U+0U+0U+0U+0U+0U)-1U))
{
mibspiRAM1->TX[i].control =(uint16)((uint16) 4U <<13U)/*缓冲模式*/
|(uint16)((uint16) 0U << 12U)/*芯片选择保持*/
|(uint16)((uint16) 0U << 10U)//启用 WDELAY *
|(uint16)((uint16) 0U << 11U)/*锁定传输*/
|(uint16)((uint16) 0U << 8U)/*数据格式*/
* SAFETYMCUSW 334 S MR:10.5 "LDRA 工具问题"*/
|((uint16)(~((uint16) 0xFFU ^(uint16) CS_6))和(uint16) 0x00FFU);/*芯片选择*

i++;
}
#endif
mibspiRAM1->TX[i].control =(uint16)((uint16) 4U <<13U)/*缓冲模式*/
|(uint16)((uint16) 0U << 12U)/*芯片选择保持*/
|(uint16)((uint16) 0U << 10U)//启用 WDELAY *
|(uint16)((uint16) 0U << 8U)/*数据格式*/
* SAFETYMCUSW 334 S MR:10.5 "LDRA 工具问题"*/
|((uint16)(~((uint16) 0xFFU ^(uint16) CS_6))和(uint16) 0x00FFU);/*芯片选择*

i++;
}
#endif

(0U > 0U)
{

#if (0U > 1U)

while (I <((1U+0U+0U+0U+0U+0U+0U+0U+0U)-1U))
{
mibspiRAM1->TX[i].control =(uint16)((uint16) 4U <<13U)/*缓冲模式*/
|(uint16)((uint16) 0U << 12U)/*芯片选择保持*/
|(uint16)((uint16) 0U << 10U)//启用 WDELAY *
|(uint16)((uint16) 0U << 11U)/*锁定传输*/
|(uint16)((uint16) 0U << 8U)/*数据格式*/
* SAFETYMCUSW 334 S MR:10.5 "LDRA 工具问题"*/
|((uint16)(~((uint16) 0xFFU ^(uint16) CS_7))和(uint16) 0x00FFU);/*芯片选择*

i++;
}
#endif
mibspiRAM1->TX[i].control =(uint16)((uint16) 4U <<13U)/*缓冲模式*/
|(uint16)((uint16) 0U << 12U)/*芯片选择保持*/
|(uint16)((uint16) 0U << 10U)//启用 WDELAY *
|(uint16)((uint16) 0U << 8U)/*数据格式*/
* SAFETYMCUSW 334 S MR:10.5 "LDRA 工具问题"*/
|((uint16)(~((uint16) 0xFFU ^(uint16) CS_7))和(uint16) 0x00FFU);/*芯片选择*
i++;
}
#endif
}

/**-设置中断级别*/
mibspiREG1->LVL =(uint32)((uint32) 0U <<9U)/* TXINT */
|(UINT32)((UINT32) 0U <<8U)/* RXINT */
|(UINT32)((UINT32) 0U << 6U)/* OVRNINT */
|(uint32)((uint32) 0U << 4U)/* BIERR */
|(uint32)((uint32) 0U << 3U)/* DESYNC */
|(uint32)((uint32) 0U << 2U)/* PARERR */
|(uint32)((uint32) 0U << 1U)/*超时*/
|(UINT32)((UINT32) 0U << 0U);/* DLENERR */

/**-清除所有挂起的中断*/
mibspiREG1->FLG |= 0xFFFFFFU;

/**-启用中断*/
mibspiREG1->INT0 =(mibspiREG1->INT0 & 0xFFFF0000U)
|(UINT32)((UINT32) 0U <<9U)/* TXINT */
|(UINT32)((UINT32) 0U <<8U)/* RXINT */
|(UINT32)((UINT32) 0U << 6U)/* OVRNINT */
|(uint32)((uint32) 0U << 4U)/* BIERR */
|(uint32)((uint32) 0U << 3U)/* DESYNC */
|(uint32)((uint32) 0U << 2U)/* PARERR */
|(uint32)((uint32) 0U << 1U)/*超时*/
|(UINT32)((UINT32) 0U << 0U);/* DLENERR */

/**@b 初始化@b MIBSPI1 @b 端口*/

/**- MIBSPI1端口输出值*/
mibspiREG1->PC3 =(uint32)((uint32) 1U <<0U)/* SCS[0]*/
|(uint32)((uint32) 1U << 1U)/* scs[1]*/
|(uint32)((uint32) 1U << 2U)/* scs[2]*/
|(UINT32)((UINT32) 1U << 3U)/* SCS[3]*/
|(uint32)((uint32) 1U << 4U)/* scs[4]*/
|(uint32)((uint32) 1U <<5U)/* SCS[5]*/
|(UINT32)((UINT32) 0U <<8U)/* ENA */
|(UINT32)((UINT32) 0U <<9U)/* CLK */
|(uint32)((uint32) 0U <<10U)/* SIMO[0]*/
|(UINT32)((UINT32) 0U << 11U)/* SOMI[0]*/
|(uint32)((uint32) 0U << 17U)/* SIMO[1]*/
|(uint32)((uint32) 0U << 25U);/* SOMI[1]*

/**- MIBSPI1端口方向*/
mibspiREG1->PC1 =(uint32)((uint32) 1U <<0U)/* SCS[0]*/
|(uint32)((uint32) 1U << 1U)/* scs[1]*/
|(uint32)((uint32) 1U << 2U)/* scs[2]*/
|(UINT32)((UINT32) 1U << 3U)/* SCS[3]*/
|(uint32)((uint32) 1U << 4U)/* scs[4]*/
|(uint32)((uint32) 1U <<5U)/* SCS[5]*/
|(UINT32)((UINT32) 0U <<8U)/* ENA */
|(uint32)((uint32) 1U <<9U)/* CLK */
|(uint32)((uint32) 1U <<10U)/* SIMO[0]*/
|(UINT32)((UINT32) 0U << 11U)/* SOMI[0]*/
|(uint32)((uint32) 0U << 17U)/* SIMO[1]*/
|(uint32)((uint32) 0U << 25U);/* SOMI[1]*

/**- MIBSPI1端口开漏使能*/
mibspiREG1->PC6 =(uint32)((uint32) 0U <<0U)/* scs[0]*/
|(uint32)((uint32) 0U << 1U)/* scs[1]*/
|(uint32)((uint32) 0U << 2U)/* scs[2]*/
|(UINT32)((UINT32) 0U << 3U)/* SCS[3]*/
|(uint32)((uint32) 0U << 4U)/* scs[4]*/
|(uint32)((uint32) 0U << 5U)/* scs[5]*
|(UINT32)((UINT32) 0U <<8U)/* ENA */
|(UINT32)((UINT32) 0U <<9U)/* CLK */
|(uint32)((uint32) 0U <<10U)/* SIMO[0]*/
|(UINT32)((UINT32) 0U << 11U)/* SOMI[0]*/
|(uint32)((uint32) 0U << 17U)/* SIMO[1]*/
|(uint32)((uint32) 0U << 25U);/* SOMI[1]*

/**- MIBSPI1端口上拉/下拉选择*/
mibspiREG1->PC8 =(uint32)((uint32) 1U <<0U)/* scs[0]*/
|(uint32)((uint32) 1U << 1U)/* scs[1]*/
|(uint32)((uint32) 1U << 2U)/* scs[2]*/
|(UINT32)((UINT32) 1U << 3U)/* SCS[3]*/
|(uint32)((uint32) 1U << 4U)/* scs[4]*/
|(uint32)((uint32) 1U <<5U)/* SCS[5]*/
|(uint32)((uint32) 1U <<8U)/* ENA */
|(uint32)((uint32) 1U <<9U)/* CLK */
|(uint32)((uint32) 1U <<10U)/* SIMO[0]*/
|(UINT32)((UINT32) 1U << 11U)/* SOMI[0]*/
|(uint32)((uint32) 1U << 17U)/* SIMO[1]*/
|(uint32)((uint32) 1U << 25U);/* SOMI[1]*/

/**- MIBSPI1端口上拉/下拉使能*/
mibspiREG1->PC7 =(uint32)((uint32) 0U <<0U)/* scs[0]*/
|(uint32)((uint32) 0U << 1U)/* scs[1]*/
|(uint32)((uint32) 0U << 2U)/* scs[2]*/
|(UINT32)((UINT32) 0U << 3U)/* SCS[3]*/
|(uint32)((uint32) 0U << 4U)/* scs[4]*/
|(uint32)((uint32) 0U << 5U)/* scs[5]*
|(UINT32)((UINT32) 0U <<8U)/* ENA */
|(UINT32)((UINT32) 0U <<9U)/* CLK */
|(uint32)((uint32) 0U <<10U)/* SIMO[0]*/
|(UINT32)((UINT32) 0U << 11U)/* SOMI[0]*/
|(uint32)((uint32) 0U << 17U)/* SIMO[1]*/
|(uint32)((uint32) 0U << 25U);/* SOMI[1]*

/* MIBSPI1将所有引脚设置为功能*/
mibspiREG1->PC0 =(uint32)((uint32) 1U <<0U)/* scs[0]*/
|(uint32)((uint32) 0U << 1U)/* scs[1]*/
|(uint32)((uint32) 0U << 2U)/* scs[2]*/
|(UINT32)((UINT32) 0U << 3U)/* SCS[3]*/
|(uint32)((uint32) 0U << 4U)/* scs[4]*/
|(uint32)((uint32) 0U << 5U)/* scs[5]*
|(uint32)((uint32) 1U <<8U)/* ENA */
|(uint32)((uint32) 1U <<9U)/* CLK */
|(uint32)((uint32) 1U <<10U)/* SIMO[0]*/
|(UINT32)((UINT32) 1U << 11U)/* SOMI[0]*/
|(uint32)((uint32) 1U << 17U)/* SIMO[1]*/
|(uint32)((uint32) 1U << 25U);/* SOMI[1]*/

/**-最后启动 MIBSPI1 */
mibspiREG1->GCR1 =(mibspiREG1->GCR1 & 0xFEFFFFFFU)| 0x01000000U;




//用户代码开始(3)*/*
用户代码结束*/

} 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Furkan、
    您必须在 HALCoGen 中的"Driver Enable"选项卡下启用 MIBSPI1和 MIBSPI5驱动程序。
    尝试执行以下操作:
    -转至 HALCoGen TMS570LS1224->驱动程序启用;
    -取消选中标记/取消标记所有驱动程序;
    -选中启用 MIBSPI1驱动程序;
    -选中启用 MIBSPI5驱动程序;

    然后生成代码。
    一切都应该好。

    此致、
    米罗
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Furkan、
    请告诉我您的 HALCoGen 安装路径。
    我提出这一问题是因为当我使用 HALCoGen 中的"Help->About (帮助->关于)菜单检查我的版本时,我可以看到版本04.06.00,但安装文件夹是..\v04.07.00\

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

    尊敬的 Miroslav:
    我意识到 MibSPI5驱动程序没有被检查,很抱歉这个错误:)

    对于安装路径问题、我也是如此。

    安装路径为 C:\ti\Hercules \HALCoGen\v04.07.00,但如果我从"Help"->"About Halcogen "中检查它,则会显示04.06.00。