UART 在一块 ATmega128 板中工作,但在另一块板中使用相同的十六进制文件失败
UART works in one ATmega128 board but fails with same hex file in another
我已经使用 ATmega128 和其他类似系列工作了大约 2 年,并使用 UART 库进行串行传输。我很确定这个库是正确的,因为我已经使用了它数百次,但在过去的几个月里,我无法在我的 ATmega128 上进行 UART。我确定我的硬件是正确的,我确定我的代码并添加到它,相同的十六进制文件在其他两个 ATmega 板上运行良好,但在其他板上运行良好。
- 当所有引脚编码为提供输出时,PORT 提供 5V 输出。
- 语句在任何 UART 功能发生之前和之后停止(什么都不做,没有 UART,甚至没有 UART 之后的语句)
- 我尝试在 main.c 中完全复制粘贴 UART 代码,然后成功了。
请帮忙!我不知道发生了什么。
嗯,折腾了好久,终于找到问题解决了。当我检查另一个微控制器(工作的那个)的保险丝位时,我发现 Extended Fuse bits
与不工作的微控制器不同。我将 Extended Fuse bits
更改为 0xFF
并解决了问题。
我已经使用 ATmega128 和其他类似系列工作了大约 2 年,并使用 UART 库进行串行传输。我很确定这个库是正确的,因为我已经使用了它数百次,但在过去的几个月里,我无法在我的 ATmega128 上进行 UART。我确定我的硬件是正确的,我确定我的代码并添加到它,相同的十六进制文件在其他两个 ATmega 板上运行良好,但在其他板上运行良好。
- 当所有引脚编码为提供输出时,PORT 提供 5V 输出。
- 语句在任何 UART 功能发生之前和之后停止(什么都不做,没有 UART,甚至没有 UART 之后的语句)
- 我尝试在 main.c 中完全复制粘贴 UART 代码,然后成功了。
请帮忙!我不知道发生了什么。
嗯,折腾了好久,终于找到问题解决了。当我检查另一个微控制器(工作的那个)的保险丝位时,我发现 Extended Fuse bits
与不工作的微控制器不同。我将 Extended Fuse bits
更改为 0xFF
并解决了问题。