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

欢迎关注微信公众号:泛米米

12本阳台种菜电子书限时免费送

关注【泛米米】,发送“电子书”免费获取

随时随地在手机上学习交流阳台种菜,公众号文章更新更快

在网上找的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);
    }
}

记录一下,分享给大家。

欢迎关注微信公众号:泛米米

12本阳台种菜电子书限时免费送

关注【泛米米】,发送“电子书”免费获取

随时随地在手机上学习交流阳台种菜

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

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

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