我正在尝试使用标志来实现逻辑,以便标志变量的值只能是0或1。因此,我将uint8_t
变量初始化为0,但是在调试时,我发现它转换为0x30(ASCII值为0),所以我以后的逻辑失败了
uint8_t flag_count = 0;
if(flag_count == 0)
{
counter++;
if(counter >= 1000)
{
counter = 0;
flag_count = 1;
}
}
if(flag_count == 1)
{
//do something
flag = 0;
}
因此,当我运行程序时flag_count的值为0x30(ASCII值为'0'),因此计数器从不增加,因此逻辑失败。
我尝试了
uint8_t flag_count = 0x00;
它仍然做同样的事情。
答案 0 :(得分:0)
对于uint8_t:编译器将其作为char并因此将其转换为ascii
所以我需要使用uint32_t或int使其起作用:)