C:\StellarisWare\boards\ek-lm4f232\usb_dev_serial 程序使用两个USB口来模拟串口,一个收,一个发,使用不便。请问如何修改为使用单串口就可以收发???不要告诉我去单步跟踪,我已经这么做了,找不到发送的语句。请问如何修改??
C:\StellarisWare\boards\ek-lm4f232\usb_dev_serial 程序使用两个USB口来模拟串口,一个收,一个发,使用不便。请问如何修改为使用单串口就可以收发???不要告诉我去单步跟踪,我已经这么做了,找不到发送的语句。请问如何修改??
如果只是想知道如何使用UART,可以参考StellarisWare\boards\ek-lm4f232\hello这个例程
在这里一两句比较难讲清,建议楼主多读读代码。程序是中断事件驱动的,有时候单步调试也不一定能看明白。
给楼主的提示是,注意以下这两个函数,它们分别是对USBBuffer的读写操作的(接收或者发送数据):
USBBufferRead
USBBufferWrite
在RxHandler中展示了USB数据到来时的处理方式(通过USBBufferRead读取数据),TxHandler展示了USB数据发送完成时的处理方式(不理会,通常随时可以使用USBBufferWrite写数据)。
Richard 可能误解了楼主的意思,楼主是讲USB虚拟串口时,占用了USB的两个端点,一个用于接收,一个端点用于发送,这样不太方便。能不能改成一个端点既接收又发射。这里需要给楼主普及下USB的基础知识。
1. USB的端点是有方向性的,一个端点在一个时间点只能工作在IN 或OUT模式.
2. USB的端点除了端点0(控制端点)外都只能是单向的,也就是说端点1-端点15在同一设备的某个时间段,只能工作在IN(输出) 和OUT(输入)一个模式.端点0为控制端点,支持双向通信,但该端点为设备和主机枚举通信的专用端点,不能作为功能端点使用.
3. 基于上面的描述,如果要实现一个USB转串口的设备,就必须至少使用两个端点.一个用于发送,一个用于接收。
4. TI M4的芯片USB控制器支持16个端点,其中有2个端点被控制端点专用为输入(OUT)和输出(IN), 剩下的14个端点,7个可以配置成输入,7个可以配置成输出。
也就是说楼主如果想用M4实现USB转多个串口的应用的话,最多能做7个虚拟串口.