博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【iCore1S 双核心板_ARM】例程十五:USB_HID实验——双向数据传输
阅读量:5314 次
发布时间:2019-06-14

本文共 2295 字,大约阅读时间需要 7 分钟。

实验方法:

1、USB_HID协议免驱动,此例程不需要驱。

2、将跳线冒跳至USB_OTG,通过Micro USB 线将iCore1S USB-OTG接口与电脑相连。

3、打开上位机软件usb_hid.e,即可进行测试。

实验现象:

核心代码:

int main(void){  /* USER CODE BEGIN 1 */    int i;    unsigned char buffer[64];    unsigned char send_buffer[64];    static int counter;    RTC_DateTypeDef sDate;    RTC_TimeTypeDef sTime;      /* USER CODE END 1 */  /* MCU Configuration----------------------------------------------------------*/  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */  HAL_Init();  /* Configure the system clock */  SystemClock_Config();  /* Initialize all configured peripherals */  MX_GPIO_Init();  MX_RTC_Init();  MX_USB_DEVICE_Init();  SystemClock_Config();  /* USER CODE BEGIN 2 */  /* USER CODE END 2 */  /* Infinite loop */  /* USER CODE BEGIN WHILE */  while (1)  {  /* USER CODE END WHILE */  /* USER CODE BEGIN 3 */        if(systick.second_flag == 1){            systick.second_flag = 0;            if(hUsbDeviceFS.dev_state == USBD_STATE_CONFIGURED){                if(counter ++ % 2){                    HAL_RTC_GetTime(&hrtc, &sTime, RTC_FORMAT_BIN);                    HAL_RTC_GetDate(&hrtc, &sDate, RTC_FORMAT_BIN);                    memset(send_buffer,0,64);                    sprintf((char *)send_buffer,"time:%02d:%02d:%02d  %02d-%02d-%02d",sTime.Hours,sTime.Minutes,sTime.Seconds,sDate.Year,sDate.Month,sDate.Date);                    USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS,send_buffer,64);                }else{                    memset(send_buffer,0,64);                    if(ARM_KEY_STATE == KEY_DOWN)                        sprintf((char *)send_buffer,"key:KEY PRESS");                    else                        sprintf((char *)send_buffer,"key:");                    USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS,send_buffer,64);                                }            }            }        if(usb_receive_flag == 1){            usb_receive_flag = 0;            memcpy(buffer,usb_receive_buffer,usb_receive_counter);            memset(usb_receive_buffer,0,usb_receive_counter);            for(i = 0;i < 64;i++){                buffer[i] = tolower(buffer[i]);            }            command_process(buffer);        }        }  /* USER CODE END 3 */}

实验方法及指导书:

链接: 密码:4m2r

转载于:https://www.cnblogs.com/xiaomagee/p/7572956.html

你可能感兴趣的文章
Python3 高阶函数
查看>>
初始面向对象
查看>>
leetcode Letter Combinations of a Phone Number
查看>>
Unity 5.4 测试版本新特性---因吹丝停
查看>>
7.5 文件操作
查看>>
MyEclipse中将普通Java项目convert(转化)为Maven项目
查看>>
node js 安装.node-gyp/8.9.4 权限 无法访问
查看>>
windows基本命令
查看>>
VMware中CentOS设置静态IP
查看>>
[poj1006]Biorhythms
查看>>
Hyper-V虚拟机上安装一个图形界面的Linux系统
查看>>
Hover功能
查看>>
js千分位处理
查看>>
Mac---------三指拖移
查看>>
字符串类型的相互转换
查看>>
HTTP状态码
查看>>
iOS如何过滤掉文本中特殊字符
查看>>
基础学习:C#中float的取值范围和精度
查看>>
MongoDB-CRUD
查看>>
javaagent 简介
查看>>