STM32 USB HID 写入自已的数据
USB_SendData(data,sizeof(data)); 通过USB发送数据函数
(USB_SendData(data,sizeof(data));)是这样写的:
/**
* @brief通过USB发送数据
* @paramdata 数据存储首地址
* @paramdataNum 发送的数据字节数
* @retval 发送的字节数
*/
uint32_t USB_SendData(uint8_t *data,uint32_t dataNum)
{
#ifndef STM32F10X_CL
//将数据通过USB发送出去
UserToPMABufferCopy(data, ENDP2_TXADDR, dataNum);//拷贝数据到PMA中
SetEPTxCount(ENDP2, REPORT_COUNT); //从端点2发送64字节数据
SetEPTxValid(ENDP2); //使能端点2的发送状态
#else
USB_SIL_Write(EP2_IN, data, dataNum);
#endif
return dataNum;
}
请问一下,我自已的数据64字节 怎么写进去。请举个例说明一下吧。本人入门初级,对语法
不是很全面,请各位高手指教。。这个程序,是可以正常使用的。我测过了。如果改好了,
我贴出来,让大家分享。
你的HID 是不是描术了64字节的了,如果不是你描了多少就发多少 楼主的意思是你的数据如何通过这个函数来发送是吗?你的数据是怎么存储的呢?把数据首地址给data即可,比如一个数组table[]={,,,};
data =&table;即可
大神们我这样写对不对?我也没用过……:P 就是传个数组的首地址指针给他,因为数组都是在连续的内存里的,所以只要知道首地址就可以读全部的数组了。去了解一下C 的指针 mark0668 发表于 2015-5-21 12:21
就是传个数组的首地址指针给他,因为数组都是在连续的内存里的,所以只要知道首地址就可以读全部的数组了。 ...
能帮我虽便写个样式嘛。。你自已定义64个数据。。然后通过函数发送出去。 本帖最后由 mark0668 于 2015-5-21 12:44 编辑
main(void){
u8 a={0,1,2,3};
dd(a);
}
void dd(u8 *bbb){
u8 ee;
ee=bbb;
ee=bbb;
}
这是一种, mark0668 发表于 2015-5-21 12:42
main(void){
u8 a={0,1,2,3};
dd(a);
你能不能用我那个函数,虽便写几个数据调用,发送出去。。mian,直接调用的USB_SendData(data,sizeof(data)); 发送。
子函数才是这样写的
uint32_t USB_SendData(uint8_t *data,uint32_t dataNum)
{
#ifndef STM32F10X_CL
//将数据通过USB发送出去
UserToPMABufferCopy(data, ENDP2_TXADDR, dataNum);//拷贝数据到PMA中
SetEPTxCount(ENDP2, REPORT_COUNT); //从端点2发送64字节数据
SetEPTxValid(ENDP2); //使能端点2的发送状态
#else
USB_SIL_Write(EP2_IN, data, dataNum);
#endif
return dataNum;
} mark0668 发表于 2015-5-21 12:42
main(void){
u8 a={0,1,2,3};
dd(a);
好像你是对的,,main主程序 里面定义了一个,uint8_t data;
然后,调用 uint32_t USB_SendData(uint8_t *data,uint32_t dataNum) 发数据
是不是应该,这样写,data=22; ....... 直接把数据写入,然后调用
uint32_t USB_SendData(uint8_t *data,uint32_t dataNum)
把数据发送去。 说了你去了解下C 的指针就明白了,数据传递 要想深入编程就得会用指针
页:
[1]