gpt4 book ai didi

c - 数字常量 ATMEGA 之前应有标识符或 '('

转载 作者:行者123 更新时间:2023-11-30 20:20:35 25 4
gpt4 key购买 nike

我想将atmega32与MMC/SD卡连接,但我有问题是:

#define F_CPU 8000000UL    
void uart_init(unsigned int BAUD)

unsigned long int temp_BAUD;
unsigned char F_CPU;
temp_BAUD = (F_CPU)/16;
temp_BAUD /= BAUD;
temp_BAUD--;

问题是:数字常量之前有预期的标识符或“(”
谁能告诉我这是什么问题以及如何解决这个问题?
感谢您的阅读!

最佳答案

有很多问题。首先,该数字不适合字符内部。一个 char 通常是 8 位,因此它可以包含 2^8 个不同的值(例如 0-255)。

其次,宏只是被它定义的内容所替换。所以

#define F_CPU 8000000UL 
unsigned char F_CPU;

变成了

unsigned char 8000000UL;

这不是有效的代码。变量需要一个名称,因此您需要执行类似的操作

unsigned long variableContainingCPUSpeed = F_CPU;

然后将被替换为

unsigned long variableContainingCPUSpeed = 8000000UL;

但是,在您的示例中,您根本不需要将此速度存储在变量中。对于波特率计算,您可以直接使用宏。因此,您可以简单地省略 unsigned char F_CPU; 行。

关于c - 数字常量 ATMEGA 之前应有标识符或 '(',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45630073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com