作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将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/
当我运行我的应用程序时,我在控制台中收到一条消息: 2011-11-16 19:17:41.292 Juice[8674:707] Applications are expected to have
我在 JavaScript 中使用了这个语句,但是当我尝试在 TypeScript 项目中使用它时出现错误。它在提示 fetch(...args) const fetcher = (...args)
我是一名优秀的程序员,十分优秀!