背景交代:本人目前在调试的是RM57L843芯片,版本为B版。根据HAL Code Generator配置了SPI接口(SPI1、SPI3、SPI5),调试通过。后有配置了HET模块用于PWM输出,pwm0~PWM7均可输出。后来应用HET_IDE工具配置成13路PWM输出,也可测到所有输出。还配置了ADC1、EMIF、sci1~sci4、CAN1~CAN4、RTI(仅用于定时)。
问题描述:在综合测试时,main函数中完成以下工作:
int main(void)
{
rtiInit();
esmInit();
emif_ASYNC2Init();
gioInit();
sciInit();
adcInit();
canInit();
spiInit();
hetIint();
…………
}
后来测试显示,
情况1:使用HET_IDE生成的HET模块; 如果执行了hetInit();则我的SPI的CLK测不到信号,SPI不正常工作(3组SPI);如果不执行hetInit(),则SPI正常工作。
情况2:使用HET_IDE生成的HET模块; 先执行spiInit();不执行hetInit(); 在执行SPI相关程序,SPI功能正常。SPI功能正常后再执行hetInit()后,在进行SPI相关程序,则SPI功能不正常。
情况3:使用HAL Code Generator配置HET模块。同情况1、2。
后来定位到hetInit()中的 (VOID)memcpy((void *)hetRAM1,(const void*)het1PROGRAM,sizeof(het1PROGRAM));
如果屏蔽掉该语句,则SPI功能正常,但PWM无输出,该语句只是把数组放置到制定RAM中,为何会影响spi的clk.
关于时钟初始化:spi的clk用的是VCLK,het用的是VCLK2,在系统初始化时CCDIS写入的是0X20 除去VCLK2A 未使用,其他均打开了。
请教大神如何解决,或者有没有类似的情况啊