专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
关于MSP430F55xx的USB HID与上位机不能收发数据的问题
2019-03-24 10:10
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
15160
0
1337
我现在的问题是
现在板子可以与TI的msp430ware的USB HID Demo的MSP430 HID USB Application
通讯成功,
图片中的软件是在CCS中的附带的一个测试软件,发给用户的话,总不能让每台上面安装CCS吧!
在网上下载的Java_HID_Demo如附件,我打开来是这样的,没有.exe问件,也就是无从调用连接与所提供的库函数。
但与其他软件(这款软件是在网上
下载
的,并且
已发布,不是自己编写,我会给你加在在附件中)可以识别我的USB设备,但发送
SetupPacket没反应,更不可能
收发数据(根本接收不到USB底层数据)
我还用在你们的官网买的两款5529的开发板试了,一样的情况:
下面是我自己读取HID1接受缓冲X/Y区基址寄存器的代码,用MSP430 HID USB Application,基址寄存器stUsbHandle[0].oep_X/Y_Buffer中的数据改变,
其他软件发送数据连中断都不会进,基址寄存器stUsbHandle[0].oep_X/Y_Buffer中的数据不会改变,可见接受HOST数据包时,底层是收不到的;
BYTE * pEP1;
BYTE i;
pEP1=(BYTE*)stUsbHandle[0].oep_X_Buffer;
for(i=0;i<*(pEP1+1);i++)//EP_MAX_PACKET_SIZE
{
Zigbee_TXbuf
=*pEP1;//(pEP1+2)
pEP1++;
}
pEP1=(BYTE*)stUsbHandle[0].oep_Y_Buffer;
for(i=0;i<*(pEP1+1);i++)//EP_MAX_PACKET_SIZE
{
Zigbee_RXbuf
=*pEP1;//(pEP1+2);
pEP1++;
}
}/**/
我今天在Debug模式下试了下,上电后换用其他任何软件发送正确的VID:0x2047,PID:0x0301,不能实现正常的Setup事务处理与传输(连#pragma vector=USB_UBM_VECTOR中断都不会进),
只有你们的MSP430 HID USB Application可以,可见MSP430f5510单片机自带USB功能通信协议和计算机底层USB通信协议冲突,USB HID Demo软件源代码中应该是有两者协议的管道。
输入/出端点0的初始化配置如下:
#define USBIEPCNF_0_ (0x0920u) /* USB Input endpoint_0: Configuration */
DEFC( USBIEPCNF_0 , USBIEPCNF_0_)
#define USBIEPCNT_0_ (0x0921u) /* USB Input endpoint_0: Byte Count */
DEFC( USBIEPCNT_0 , USBIEPCNT_0_)
#define USBOEPCNF_0_ (0x0922u) /* USB Output endpoint_0: Configuration */
DEFC( USBOEPCNF_0 , USBOEPCNF_0_)
#define USBOEPCNT_0_ (0x0923u) /* USB Output endpoint_0: byte count */
DEFC( USBOEPCNT_0 , USBOEPCNT_0_)
/* Set settings for EP0 */
//NAK both 0 endpoints and enable endpoint 0 interrupt
USBIEPCNF_0 = 0x04+0x80+0x08;
USBOEPCNF_0 = 0x8C;
USBIEPCNT_0 = 0x80;
USBOEPCNT_0 = 0x80;
输入/出端点1的初始化配置如下:
#define USBIEPCNF_1_ (0x23C8u) /* Input Endpoint_1: Configuration */
DEFC( USBIEPCNF_1 , USBIEPCNF_1_)
#define USBOEPCNF_1_ (0x2388u) /* Output Endpoint_1: Configuration */
DEFC( USBOEPCNF_1 , USBOEPCNF_1_)
/* Set settings for IEP1 */
USBIEPCNF_1 = EPCNF_USBIE | EPCNF_UBME | EPCNF_DBUF;//0x23C8
USBIEPBBAX_1 = 0x10;
USBIEPBBAY_1 = 0x18;
USBIEPBCTX_1 = 0x80;
USBIEPBCTY_1 = 0x80;
USBIEPSIZXY_1 = 0x40;
/* Set settings for OEP1 */
USBOEPCNF_1 = EPCNF_USBIE | EPCNF_UBME | EPCNF_DBUF;//0x2388
USBOEPBBAX_1 = 0x00;
USBOEPBBAY_1 = 0x08;
USBOEPBCTX_1 = 0x00;
USBOEPBCTY_1 = 0x00;
USBOEPSIZXY_1 = 0x40;
此帖出自
小平头技术问答
发送
看不清?
0条回答
一周热门
更多
>
相关问题
相关文章
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
一周热门 更多>