我正试图与我的MSP430F5529 LaunchPad进行交流,这是我刚刚了解到的关于微控制器和一些严重问题的知识。
我从德州仪器公司下载了MSP430 USB包,并将其作为我的IDE。
在示例文件夹中,有相同的示例用于不同的协议: HID、CDC、Composite、MSC和SYSBIOS。
我决定点击HID,然后在该文件夹中浏览DataPipe文件夹,然后转到H0_SimpleSend,这似乎是第一个也是最基本的示例项目。
里面似乎有许多文件夹和项目文件,如USB_Config、USB_app、IAR、GCC、CCS_GCC、CSS,以及文件system_pre_init.c、main.c、hal.h和hal.c。
IAR文件夹中有一个项目和工作区文件,所以我加载了这个项目,希望它能够简单地将项目构建到我的板上,并在使用Termite与COM端口通信时运行调试。
当我插入我的MSP430F5529LP窗口时,使用了两个COM端口,一个是MSP应用程序UART1,另一个是MSP调试接口,它们总是连续的COM端口(分别是COM11和COM10,或者COM12和COM13 )。我假设我想要一个UART,所以我设置Termite与应用程序UART1进行8位数据和1位停止位的通信,没有奇偶校验位。
然后我制作了这个程序,它做得很好,并把它加载到了我的板上。
通过程序,它似乎从来没有起作用。它总是卡在这个街区上:
// This function begins the USB send operation, and immediately
// returns, while the sending happens in the background.
// Send timeStr, 9 bytes, to intf #0 (which is enumerated as a
// COM port). 1000 retries. (Retries will be attempted if the
// previous send hasn't completed yet). If the bus isn't present,
// it simply returns and does nothing.
if (USBCDC_sendDataInBackground(timeStr, 9, CDC0_INTFNUM, 1000))
{
_NOP(); // If it fails, it'll end up here. Could happen if
// the cable was detached after the connectionState()
} // check, or if somehow the retries failed有时,在调试会话期间,窗口会说我的设备不协调。
我做错什么了?
我不知道所有这些协议是什么,什么是CDC或HID,为什么我要使用一个而另一个。好像USB通讯很复杂..。Energia和Arduino使Begin.Serial(9600)看起来很简单,但我想学习使用IAR的“真正”方法,因为我是嵌入式系统的初学者。
我该试着让这件事成功吗?或者,在我尝试让usb通讯开始工作之前,我需要先了解一些材料吗?
我不想对USB做太高的事情,我只想用ADC12读取电阻力传感器上的信号,然后将这些数据发送到计算机上。
要查看我提到的所有代码,您可以下载德克萨斯仪器示例文件夹这里 [Warning:Link开始下载,查看我来自go 这里的页面)。
发布于 2015-08-14 10:47:43
USB是一组相当复杂的协议。
COM端口的USB协议称为CDC (通信设备类),而不是HID。
当您在F5529上实现(虚拟) COM端口时,它在主机PC上显示为第三个端口。
F5529有两个“真实”的UART。第一个是BoosterPack连接器。第二个连接到eZ,它实现了UART到USB接口;这是“应用程序”UART。
使用应用程序UART更容易,因为您不必实现USB设备;您只需直接使用USCI_A1模块,而其他CPU则负责处理USB设备。
阅读您的发射台的用户指南第2.2.3和2.2.6节。
https://stackoverflow.com/questions/32000248
复制相似问题