原创
IAR 7.60之奇怪错误
2011-9-20 10:43
1805
9
9
分类:
软件与OS
将IAR 7.51的代码改用 7.60编译后,居然发现了代码的执行结果不一样!
使用串口来设置时间,接收到串口设置时间的字符串是OK的,接着将新的时间提取出来,提取时间的代码如下:
newTime[0] = (uint8)(uartBuffer[1] - '0') * 10;
newTime[0] += (uint8)(uartBuffer[2] - '0');
//uartBuffer[1] = '2', uartBuffer[2] = '3';
按理newTime[0] = 23;在7.51中也确是如此,但在7.60编译后运行结果是newTime = 179, // 0xb3
最后解决的办法是将 -换成%.改代码如下:
newTime[0] = (uint8)(uartBuffer[1] % '0') * 10;
newTime[0] += (uint8)(uartBuffer[2] % '0');
//newTime[0] = 23。
现目前为止,还是知道原因。
文章评论(0条评论)
登录后参与讨论