|
快疯了!!PC通过USBlib和89S52通信的问题,大家帮忙哦
[复制链接]
我在淘宝上买了一个USB下载线,他提供给PC的驱动是libusb,没提供驱动代码;我从网上下载了libusb的代码;初始化,打开设备都可以的,就是发送接收失败,想了好几天了都不知道什么原因!请大家帮忙看下
- struct usb_bus
- *busses;
- int device_num = 0;
- device_num = 0; /* 记录设备数量 */
- usb_init(); /* 初始化 */
- usb_find_busses(); /* 寻找系统上的usb总线 */
- usb_find_devices(); /* 寻找usb总线上的usb设备 */
- /* 获得系统总线链表的句柄 */
- busses = usb_get_busses();
- struct usb_bus *bus; /* 遍历总线 */
- for (bus = busses; bus; bus = bus->next)
- {
- struct usb_device *dev; /* 遍历总线上的设备 */
- for (dev = bus->devices; dev; dev = dev->next) { /* 寻找到相关设备, */
- if(dev->descriptor.idVendor==VENDOR_ID&& dev->descriptor.idProduct == PRODUCT_ID)
- {
- /* 这里添加设备的初始化代码 */
- device_num++; /* 找到的设备数 */
- }
- }
- }
- return device_num; /* 返回设备数量 */
复制代码
中间有USB下载线进行转换
单片机的串口发送代码
- #include
- #include
- #define INBUF_LEN 4 //数据长度
- unsigned char inbuf1[INBUF_LEN];
- unsigned char checksum,count3;
- bit read_flag= 0 ;
- void init_serialcomm( void )
- {
- SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable
- ucvr TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload
- PCON |= 0x80 ; //SMOD=1; TH1 = 0xF4 ; //Baud:4800 fosc=11.0592MHz
- IE |= 0x90 ; //Enable Serial Interrupt
- TR1 = 1 ; // timer 1 run // TI=1;
- }
- //向串口发送一个字符
- void send_char_com( unsigned char ch)
- { SBUF=ch; while (TI== 0 ); TI= 0 ; }
- //向串口发送一个字符串,strlen为该字符串长度
- void send_string_com( unsigned char *str, unsigned int strlen)
- { unsigned int k= 0 ;
- do { send_char_com(*(str + k)); k++; }
- while (k < strlen); }
- //串口接收中断函数
- void serial () interrupt 4 using 3
- {
- if (RI)
- {
- unsigned char ch; RI = 0 ;
- ch=SBUF;
- if (ch> 127 )
- { count3= 0 ; inbuf1[count3]=ch; checksum= ch- 128 ; }
- else { count3++; inbuf1[count3]=ch; checksum ^= ch;
- if ( (count3==(INBUF_LEN- 1 )) && (!checksum) )
- { read_flag= 1 ; //如果串口接收的数据达到INBUF_LEN个,且校验没错, //就置位取数标志
- }
- }
- }
- }
-
- main()
- {
- init_serialcomm(); //初始化串口
- while ( 1 )
- {
- if (read_flag) //如果取数标志已置位,就将读到的数从串口发出
- { read_flag= 0 ; //取数标志清0
- send_string_com(inbuf1,INBUF_LEN);
- }
- }
- }
复制代码
|
|