原创 PIC24FJ256GB106 串口与USB模块 水火不容【有图有真相】

2010-7-15 17:00 2951 8 8 分类: MCU/ 嵌入式

         最近需要做USB,在PIC24FJ256GB106 的USB模块上要实现host 与device 双重角色,江湖人称OTG。目前还比较菜,啥都不会,先裸机跑跑。毕竟裸机最性感了,啥都能看得到,呵呵。


      目前单模块功能分别跑起来倒是比较轻松的,移植就修改了些东西。很容易就裸奔起来了,但是当两个模块功能一起跑起来的时候就似乎问题大了。因为usb口就只有那么一个哈。因此要做切换的动作,切换一次就初始化一次USB模块,这个是必须的。不然双角色怎么跑哦...(此时OTG没有上场还)


    在做切换时我采用了串口敲字符进行里面的mode变更,使用了串口的中断了...嘻嘻。但是有个问题是在host切换到了device模式下,再使用串口敲不来host模式了,似乎我的串口中断不管用了。


   //    下面的while语句影响到了串口输入字符来切换host and device 功能
//    2010/7/15  注释while
  //U1CONbits.USBEN = 1 ;
        // Enable module & attach to bus
     while(!U1CONbits.USBEN){U1CONbits.USBEN = 1;}
通过注释掉以上的while语句就可以实现串口的切换了,但是问题来了,这个是启动device模块的使能bit位啊!模块都不工作了切换有啥用呢?很是奇怪的问题,但到device 模块启动了我的中断串口就不能用了吗??


   说了那么多,还是要上图啊!下面是实际的效果。作为从机是HID类,作为host为对U盘写入文件。


bf50214e-ec26-4038-86ac-6d3ec248b5f0.JPG


5efa79c2-edb2-478d-b17b-00f1f312e4f1.JPG


3ca9f2c3-1401-4d08-b385-45cc667f5928.JPG


 


 

文章评论0条评论)

登录后参与讨论
我要评论
0
8
关闭 站长推荐上一条 /2 下一条