CH565开发加入自定义的函数,无法达到延时效果。主程序和延时函数如下。
采用系统自带的DelayMs函数可以达到延时效果。采用自定义delay_1ms函数,无论此处的延时时间设置为多少,好像都没有起到延时效果。
while(1)
{
// 单字节发送
R32_PA_CLR |= 1<<12; // 设置为低电平
SPI0_MasterTrans( spiBuff, 9 ); // 发送数据
R32_PA_OUT |= 1<<12; // 设置为高电平
delay_1ms(50); // 延时
//DelayMs( 1 );
}
void delay_Nus(UINT32 count)
{
UINT32 i = 0;
UINT32 j = 0;
for(i=0;i {
for(j=0;j<100;j++) // 延时1us,时钟108M,具体要实测,
{
}
}
}
void delay_1ms(UINT32 count)
{
UINT32 i = 0;
for(i=0;i {
delay_Nus(1000);
}
}
2022-6-1 09:28:31
这个地方可能是代码被优化掉了,试试看在delay_Nus里面随意读写一个寄存器,或者加上一个NOP。
这个地方可能是代码被优化掉了,试试看在delay_Nus里面随意读写一个寄存器,或者加上一个NOP。
举报
2022-6-1 09:28:35
NOP加入进去,编译不通过。是不是系统不识别NOP这条语句
NOP加入进去,编译不通过。是不是系统不识别NOP这条语句
举报