embedded - 给出指针的正确语法
问题描述
我想将指向内存空间的指针分配给另一个寄存器,例如
DMA1_Channel4->CPAR = (uint32_t*)I2C2->TXDR;
例如,我在我的代码中使用过的其他地方
DMA1_Channel4->CMAR = (uint8_t*)DACdata;
这有效,但给出了警告 - 赋值使指针从整数而不进行强制转换。但是我不知道第一个实例的正确语法
解决方案
DMA1_Channel4 结构的 CPAR 字段很可能需要一个 type 的值uint32_t
,但您提供了一个“pointer to uint32_t
”类型的值。您的意思很可能是:
DMA1_Channel4->CPAR = (uint32_t)(&(I2C2->TXDR));
请注意,我在这里添加了一个“&”,因为您很可能希望将第二个 I2C 总线的 TXDR 寄存器的地址放入 CPAR 字段,而不是当前值本身。
推荐阅读
- video - 带透明背面的视频
- python - 如何在跨越多行的文本中查找模式?
- blazor - 在 Blazor 服务器应用程序中检测服务器预渲染
- java - 无法在 Intellij IDEA 中创建 java 文件
- python - Pandas - 将函数应用于具有来自不同列的多个参数的数据框
- ios - 如何使用 SwiftDate 框架在当前时区打印日期和时间(本地化)
- c - 捕获 n 个子进程的退出代码
- sql-server - 列出在包含级别作为 SQL Server 中的属性的透视表中每个级别中存在的特定节点的所有祖先或父节点
- c++ - Cin/Cout 显示日期信息
- python - DRF ModelViewSet 查询集返回其日期大于或等于今天的结果