You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Atmel Studio中LED点亮代码昨日正常今日报错求助(附代码)

Atmel Studio中C语言LED程序报错求助

我是编程新手,昨天用C语言编写了一个简单的LED点亮程序,在Atmel Studio中能正常运行,但今天出现了报错。报错内容如下:

错误:从'int'转换为'uint8_t'可能会改变结果的符号
PORTB |= 0b0000100;
^

我的代码:

#define F_CPU 1600000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
    DDRB=0xFF;
    
    while (1)
    {
        PORTB |= 0b0000100;

        }
}

我在网上找了很久都没找到解决办法,恳请各位帮忙,谢谢。


解决办法

  • 将代码中的0b0000100替换为0x04(十六进制无符号8位整数),或者显式转换为uint8_t类型:(uint8_t)0b0000100,即可消除编译器的类型转换报错。
  • 额外提示:当前代码没有延时逻辑,LED会保持常亮状态。如果需要实现闪烁效果,可在PORTB |= 0x04;后添加_delay_ms(500);,再添加PORTB &= ~0x04;和_delay_ms(500);。

内容的提问来源于stack exchange,提问作者Darren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 10:35:24