开发环境
芯片:R5F111ADFL
e2 studio版本:
时钟配置
1、USB要工作,需要提供48MHZ的频率给到UCLK
USB配置
1、单独生成USB设备配置后,再将其拷贝到另一工程中
2、例如,我需要的是cdc+hid复合设备,因此将hid和cdc的配置拷贝放到一个工程中
3、修改后的工程目录如下所示
代码修改
1、包含路径,将usb相关路径包含进来
2、修改r_usb_basic_mini_config.h
(好像也不是必须的)
3、修改描述符
就是将HID的描述符和CDC的描述符组合到一起。bNumInterfaces修改为2(hid+cdc)
4、修改usb_main函数(我这将usb_main拆分为2个函数,一个usb_init,一个usb_task)
这个函数执行不同设备的处理。
我们修改主要是增加另一个设备类的处理。比如我是在cdc配置基础上增加的hid,因此需要在usb_main中增加hid部分的处理。
这个可以直接在hid项目中拷贝过来即可
5、修改main函数
增加usb的初始化和usb_task处理
运行效果
使用bushound显示如下。电脑成功识别到复合设备。并且hid发送和cdc收发正常