LPC1768的USB驱动(四)----USB驱动程序(1768被配置为设备进行DMA传输)

USB程序的总体流程图:



      (图一)USB程序整体流程图

(1)USB模块初始化:

(1)硬件初始化
配置AHB总线时钟和USB Device时钟,使能PCONP
配置PLL1作为时钟信号,配置USB相关的引
(2)读测试寄存器
用来检测AHB总线时钟和USB Device时钟是否使能
(3)配置中断
主要是配置端点0~5的中断
(4)配置端点
配置端点0~5的最大包大小
(5)DMA初始化与配置
初始化UDCA表
读取端点2~5的设备描述符地址
(6)重新连接USB
通过写SIE命令使连接引脚输出高电平和低电平,PC机检测到新设备输入,进行枚举。

USB初始化的代码:UINT8 usbDevInit (void)
{
    __usbDevHardwareInit();                                             /*  初始化硬件                  */


    bEPPflags.value = 0;                                                /*  置USB事件标志为0            */


//如果USB时钟(USBCLK 和AHB slave clock)开始跑了,则返回0XA50F
    if (__usbDevReadTestRegister() != 0xA50F) {                         /*  读测试寄存器                */
        return 1;                                                       /*  初始化失败                  */
    }


    __usbDevIntConfig();        

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值