C - 将指针传递给字节

时间:2015-07-16 20:07:50

标签: c embedded

我目前正在使用emb设备上的USB协议。我必须使用以下功能:

uint32_t USBDBulkPacketWrite(void *pvBulkDevice, uint8_t *pi8Data,
                uint32_t ui32Length, bool bLast)

我的数据存储在一个数组中。如何将该数组传递给函数? 我试着调用函数:

USBDBulkPacketWrite(&g_sBulkDevice, &(g_pui8USBTxBuffer[0]), 512, 1);

但没有任何成功。问题出在第二个论点中。如何获取数组第一个元素的地址?

2 个答案:

答案 0 :(得分:0)

传入&(g_pui8USBTxBuffer [0])和传入g_pui8USBTxBuffer之间没有区别。地址是一样的。

问题很可能在于代码中的其他地方。请使用创建g_pui8USBTxBuffer所涉及的所有其他步骤更新您的问题。

另外,您如何确定问题与第二个参数有关?你经历了哪些调试步骤?

答案 1 :(得分:0)

有一个USBDBulkPacketWrite()函数作为Stellaris USB库的一部分...如果你正在使用的那个,它看起来像数据包必须最多64个字节。此外,USBDBulkInit()等应该返回一个指向设备结构的指针,您可以在没有address-of运算符的情况下传入该结构。这在API文档中的函数文档中提到。

事实上,查看函数的源代码显示,如果你给它的数据包大小太大,它只会返回0而不试图发送...所以这可能是你的问题。