- 打卡等级:偶尔看看III
- 打卡总天数:36
- 最近打卡:2025-10-16 00:10:16
中级会员
- 积分
- 213
|
硬件:AI8051U-34K64
配置:8Bit模式,链接器LX51,存储器和代码大小模式都是Large,工程由STC-AICube生成
开发环境:keil V5.27.1.0
代码:
void main(void)
{
float tempf;
SYS_Init();
while (1)
{
WDT_Clear(); //清看门狗定时器
USBLIB_OUT_Done(); //查询方式处理USB接收的数据
if(!P32){
delay_ms(6);
if(!P32){
USB_Send_str("\n\n float比大小测试:",USB_TX_NOTEND);
USB_Send_str("\n (11.34>=0):",USB_TX_NOTEND);
tempf = 11.34f;
if(tempf>=0) USB_Send_str("True",USB_TX_NOTEND);
else USB_Send_str("False",USB_TX_NOTEND);
USB_Send_str("\n (-11.34>=0):",USB_TX_NOTEND);
tempf = -11.34f;
if(tempf>=0) USB_Send_str("True",USB_TX_NOTEND);
else USB_Send_str("False",USB_TX_END);
while(!P32);
}
}
}
}
输出:
float比大小测试:
(11.34>=0):False
(-11.34>=0):True
附件是我用AICube新生成的工程,只在main.c里加了USB_Send_str发送函数和上述测试代码;压缩包里也包含AICube配置文件。
此问题已在我手头多个开发板上稳定复现,另外:
1.把0改为±11.33以内的整数或浮点数都不影响输出,总是反过来的。
2.此代码在同样的平台上,32Bit模式下的输出是正常的。
|
|