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.
工具/软件: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)*/* 用户代码结束*/ }
尊敬的 Miroslav:
我意识到 MibSPI5驱动程序没有被检查,很抱歉这个错误:)
对于安装路径问题、我也是如此。
安装路径为 C:\ti\Hercules \HALCoGen\v04.07.00,但如果我从"Help"->"About Halcogen "中检查它,则会显示04.06.00。