keil编译网上找的stm32的dht11程序出现#268 error declaration may not appear after excutable statement in block

【10本阳台种菜电子书免费领取】

阳台种菜交流微信群,欢迎菜友们加入,有种菜问题直接群里提出,添加 泛米米博客微信:2370202521 (添加记得备注阳台种菜,加后拉你进群,还有10本阳台种菜电子书免费赠送) 【精品推荐】(点击下面文字查看详情)

★高性价比品牌清仓,一键立抢☚

❤拼多多现金红包大派送,一键领取☚☚

微信公众号:泛米米

欢迎关注公众号,手机上一起种菜

在网上找的stm32的dht11程序,编译的时候出现错误,提示#268 error declaration may not appear after excutable statement in block,看看最后的解决方法。

出错的代码片段

int main(){
    SystemInit();
    systick_init();

    usart_config();
    
    LED_Init();    while (1)
    {
        Led_On;
        u8 buffer[5];        
        double hum;        
        double temp;        
        if (dht11_read_data(buffer) == 0)
        {
            hum = buffer[0] + buffer[1] / 10.0;
            temp = buffer[2] + buffer[3] / 10.0;
        }
        usart_printf("___{\"temperature\": %.2f, \"humidness\": %.2f}___\n", temp, hum);
        delay_us(2000000);
        Led_Off;
        delay_us(2000000);
    }
}

看看错误提示

keil编译网上找的stm32的dht11程序出现#268 error declaration may not appear after excutable statement in block5.png

变量的声明,不能放在可执行语句的后面,必须在主函数开头声明变量!


所以,我们按提示,把变量声明放前面去,错误就没了。


int main()
{
       u8 buffer[5];        
        double hum;        
        double temp; 
    SystemInit();
    systick_init();

    usart_config();
    
    LED_Init();    while (1)
    {
        Led_On;               
        if (dht11_read_data(buffer) == 0)
        {
            hum = buffer[0] + buffer[1] / 10.0;
            temp = buffer[2] + buffer[3] / 10.0;
        }
        usart_printf("___{\"temperature\": %.2f, \"humidness\": %.2f}___\n", temp, hum);
        delay_us(2000000);
        Led_Off;
        delay_us(2000000);
    }
}

记录一下,分享给大家。

这篇文章出自 泛米米博客 如需转载请注明出处;

这篇文章的地址:https://fanmimi.com/2020/467.html

本站部分资源收集于网络,纯个人收藏,无商业用途,如有侵权请及时告知!