Nexys3学习手记8:FT232之高速UART
时间:02-11
来源:网络整理
点击:
编写软件测试代码,实现查询方式(中断方式特权同学还没有搞明白,有点越弄越糊涂,以后再慢慢研究)串口数据接收,然后对接收数据取反后发送。/* ------------------------------------------------------------ *//* Include File Definitions *//* ------------------------------------------------------------ */ #include <stdio.h>#include "xparameters.h" //The hardware configuration describing constants#include "xgpio_l.h" //This header file contains identifiers and driver functions#include "xil_io.h"//Contains the Xil_Out32 and Xil_In32 functions#include "xuartlite_l.h" // #define uchar unsigned char#define uint unsigned short /* ------------------------------------------------------------ *//* main function *//* ------------------------------------------------------------ */ int main(){ uchar rxdb; XUartLite_SetControlReg(XPAR_UARTLITE_0_BASEADDR,0x10);//enable interrupt while(1) { if(!XUartLite_IsReceiveEmpty(XPAR_UARTLITE_0_BASEADDR)) { rxdb = XUartLite_RecvByte(XPAR_UARTLITE_0_BASEADDR);//XUartLite_ReadReg(XPAR_UARTLITE_0_BASEADDR,0); XUartLite_SendByte(XPAR_UARTLITE_0_BASEADDR,~rxdb); } } return 0;} 编译工程,然后参照上一节将代码烧录Nexys3中。注意此时需要两条Mini-B连接线和PC互连,一条用于连接PC与J3,即上一节提到的下载通路;另一条则用于连接PC与J13,也就是UART-Lite外设的通路。或者将JP1的跳线帽改接2-3PIN,J10连接一个5V直流电源,然后就不停的将唯一的一条Mini-B连接线在J3和J13之间来回晃荡吧,就像特权同学一样(不过这样来回热拔插不知是否会对芯片产生不良影响,尽管USB本身是支持热拔插的)。 FT232芯片是个USB转UART芯片,一端用于接USB,另一端能够接UART进行通信。所谓的USB端,物理特性上来说,肯定是真USB,直接可以连接PC的USB端口。从协议层面看,当然它也确实能够实现USB协议的数据传输,不过更简单方便的方法是用UART协议来传输数据,此时它就是个实实在在的"伪USB"——借USB跑UART。这个看似神奇的芯片也没神马特殊之处,接上PC后,若是不提示安装驱动(若是需要驱动,则可以到FTDI公司官方网站下载:),则默认就出现在了设备管理器的端口下,如图10所示的"USB Serial Port(COM3)",记住这个COM3,后面用调试助手收发数据时别选错端口。
图10 设备管理器的新串口
如图11所示,设置串口调试助手端口为COM3、波特率9600、数据位8、无校验位,进行通信,则发送55AA返回AA55。
图11 串口数据收发 FT232芯片既然用USB来传UART,一定要有点过人之处才有存在的理由。当然,一方面这个芯片会解决很多新的PC没有RS232串口的尴尬,而老串口的波特率最高通常不会超过115200bps,那么这个FT232就要来挑战一下,因此特权同学也特地进行了高速传输的测试,标称最高的921600bps,折腾老半天
- Nexys3学习手记3:硬件外设走马观花(02-11)
- Nexys3学习手记5:流水灯在线运行(02-11)
- Nexys3学习手记7:MicroBlaze小试牛刀(02-11)
- Nexys3学习手记6:ClockingWizard探秘(02-11)
- Nexys3学习手记2:建立自己的开发环境(02-11)
- 基于CC1010的智能小球测风系统设计(06-28)