以前都是用的Keil,这次为了学习STM8S,开始使用IAR.结果今天写程序的时候发现IAR编译的if语句有问题. 我在主程序的代码如下: int main( void ) { u8 i,j; i=0; j=0; //HSIClock_Set(0x18,0); while(1) { // i=HSEClock_Set(0); if(i==1) i++; else j++; j=i+j; }; return 0; } 编译后的main程序如下: main: JRA main 此时的CC寄存器值为0x2a sp值为0x17FD 哪位大神知道怎么解决?是我哪里设置的问题么? |
STMS005K6T6 如何采集内部参考电压。
stm8s003 adc中断和通道切换的问题
adc施密特触发器stm8
stm8l051f3 TSSOP20 封装,待机模式下,2天后,电流突然增加到140UA
STM8S用STVP烧录怎么加密?
如何使用ST官网例程_LIN总线通讯_STM8AF
STM8 LIN
IAR代码编辑太费劲了,想问一下有没有好的方法,试了VScode但是头文件老是报错,调了很久也没调好,想换个方法了。
想问一下各位大佬,IAR下载调试代码时出现 warning: is an illegal data sample expression IAR是什么意思啊?
STM8S标准库TIM1编码器功能不计数,请大师帮我看看
或者知道其它比较人性化的开发软件
你的代码永远不会执行if的语句体:i++,i永远都不会变成1.
另外,在逻辑错误的前提下,while中最后一条语句没用。
请检查执行逻辑(你的思维是什么),整个都有问题。
在这些错误的逻辑情况下,代码被编译器优化,最后可能也就那么2~3条汇编指令了.
int main( void )
{
u8 i,j;
i=0; //因为在这里 i=0
j=0;
//HSIClock_Set(0x18,0);
while(1)
{
// i=HSEClock_Set(0);
if(i==1) //所以这里if(i==1)永远不成立
i++; //这条语句永远不执行
else
j++;
j=i+j;
};
return 0;
}
j++应该执行吧 可视反汇编里没有
谢谢...我试试
求指导.我一般都是这么写的
if(i==1)
{
i++;
}
else
{
j++;
}
还是加个{}吧,不容易出错,比较清晰。