当前位置: 首页 > news >正文

网站建设新手教程视频企业官网建设

网站建设新手教程视频,企业官网建设,网址的域名,宁波建设网 提取业务https://www.bilibili.com/video/BV1dr421H7yPTOC #x1f449; 【2024年寒假练】基于SAMD21G17D的触摸滑条USB HID控制PC音量快捷键的功能开发 #x1f449; Github: EmbeddedCamerata/SAMD21_touchbar_usb_hid 项目介绍 本项目基于 Microchip 的 SAMD21 Curiosity Nano 核…https://www.bilibili.com/video/BV1dr421H7yPTOC 【2024年寒假练】基于SAMD21G17D的触摸滑条USB HID控制PC音量快捷键的功能开发 Github: EmbeddedCamerata/SAMD21_touchbar_usb_hid 项目介绍 本项目基于 Microchip 的 SAMD21 Curiosity Nano 核心板及 Curiosity Nano EVB 扩展板通过 USB HID 协议实现了一个键盘设备通过使用 Touch 库实现了对触摸滑条左右滑动的识别将不同方向滑动作为两个按键F2、F3按下上报至 PC从而实现 PC 音量调节。 MPLAB X IDE 硬件介绍 SAMD21 Curiosity Nano 评估套件是评估 SAMD21G17D MCU 的硬件平台。它由 MPLAB® X 集成开发环境 (IDE) 和 MPLAB Harmony v3 软件开发框架提供支持。通过评估套件可以轻松访问 SAMD21 MCU 的功能从而将器件集成到定制设计中。由于评估套件包含用于编程和调试的板载 Nano 调试器因此无需外部工具即可对 SAMD21G17D 器件进行编程。 SAMD21 Curiosity Nano 开发板板载一个用于编程和调试的 Nano 调试器。Nano 调试器是一个复杂的 USB 设备由多个接口组成如调试器、大容量存储设备、数据网关和虚拟接口、 数据网关和虚拟 COM 端口 (CDC)。板卡特性 板载SAMD21G17D微控制器一个机械用户开关板载 Nano 调试器 在 MPLAB X IDE 中识别电路板一个绿色电源/状态 LED编程和调试虚拟 COM 端口CDC一个逻辑分析器DGI GPIO USB 供电可调目标电压 项目设计 开发环境及工程参考 本项目使用 Microchip 官方的 MPLAB X IDE 开发。项目所用到的工具链、库或 packs 如下 编译器xc32 v4.35Packs: SAMD21_DFP 3.6.144、CMSIS 5.8.0、PKOB nano 1.13.715调试用MCC Content Libraries 1. MCC Harmony Core 1.5.1 2. csp v3.18.2 3. core v3.13.3 4. bsp v3.17.0 5. CMSIS_5 5.9.0 6. 触摸设备库touch v3.15.0、touch_apps v3.6.0、touch_host_driver v1.0.0 7. USB库usb v3.12.0、usb_apps_device v3.6.0 ⚠️ 请注意如果因为网络问题导致 MCC 的库下载失败需要在安装目录下的空文件夹删除否则它依然识别你安装了该包。上述所列的部分库是必需的。 在基础环境设置好后本项目可基于官方提供的 USB HID 键盘示例进行功能开发。 MPLAB-Harmony的USB HID键盘示例hid_keyboard 总体流程图 硬件基本配置 虽然有示例代码可以进行参考但是相关的库还是需要进行配置。在 MCC Content Manager 内安装必备的包后则在 Project Graph 内添加对应的库并进行功能配置。项目系统框图如下 其中Touchbar 与 USB HID 模块内的框图分别为 ⚠️ 需要将“Enable VBUS Sense”功能关闭因为扩展板 TypeC 口未预留该 IO。 调试串口及BSP配置 PIN功能PA22SERCOM5_PAD0PB22SERCOM5_PAD2 结合电路图我们使用 SERCOM5PA22、PB22正好作为作为CDC TX、RX作为调试串口添加 STDIO 模块实现 printf() 的重定向。在 SERCOM5 的配置选项内设置 注意 Receive Pinout 选择PAD[2]这对应 PB22(SERCOM5_PAD2)Transmit Pinout 选择为PAD[0] 作为 TxD这对应 PA22(SERCOM5_PAD0)且不能影响 PAD[2]。 添加 BSP 模块以简单控制核心板上的 LED 与按键。它会自动对相应 PIN 进行设置如果用不到可以手动将 PIN 取消。 PIN功能方向PB10LED_ALOut 触摸滑条 PIN设置 PIN功能PA03PTC_Y1PA06PTC_Y4PA07PTC_Y5 添加 Touchbar 模块其附带的几个模块都会自动摆放上。在 [Project Graph] - [Plugins] - [Touch Configuration] 内进行配置。 先添加一个滑条之后将传感器与 PIN 绑定从左到右依次为 PA03、PA06、PA07结合电路图。最后调整一下参数多次尝试后取功能实现效果较好的参数滑动分辨率为7bit滑动死区为8%。 识别触摸滑条的左右划动动作代码如下 #define SLIDER_CONTACTED_MASK (1 1u)touch_process(); if (measurement_done_touch 1u) {measurement_done_touch 0u;if (SLIDER_CONTACTED_MASK (get_scroller_state(0) SLIDER_CONTACTED_MASK)){if ((qtm_scroller_data1[0].right_hyst 0x08) 0x08){// slide right}else if ((qtm_scroller_data1[0].left_hyst 0x08) 0x08){// slide left}} }通过 get_scroller_state(0) 获取0号触摸滑条状态。查阅 QTouch 库的手册bit 1 为接触移动标志位该位置位表示触摸滑条被接触。这之后通过 qtm_scroller_data1[0].right_hyst 与 left_hyst 判断是向左还是向右移动从而识别相应的动作。 USB HID 参考 MPLAB-Harmony的USB HID键盘示例hid_keyboard例程中的 keyboard.c/.h 定义了键盘设备的输入报告格式及生成输入报告的函数。app.c/.h 内则为一状态机用以实现 USB HID 设备的连接、发送键盘输入报告、接收键盘输出报告等功能。 APP_Tasks() 定义了状态机及主要的逻辑该状态机将一直运行。在状态机初始状态时将为USB设备注册回调函数而回调函数内则是实现各种业务逻辑的地方。这部分需要进行修改。 替换 APP_ProcessSwitchPress() 以检测触摸滑条是否有动作。在检测到有动作后通过置位 appData.isTouchbarPress 以在其他函数内实现后续功能。 void APP_ProcessTouchbarPress(void) {/* This function checks if the touchbar is pressed */touch_process();if (measurement_done_touch 1u){measurement_done_touch 0u;if (SLIDER_CONTACTED_MASK (get_scroller_state(0) SLIDER_CONTACTED_MASK)){if (appData.sofEventHasOccurred){appData.sofEventHasOccurred false;appData.isTouchbarPress true;}}else{/* No key press. Reset all the indicators. */appData.sofEventHasOccurred false;}} }修改函数 APP_EmulateKeyboard()其原先逻辑是判断按键是否按下按下后 appData.key即依次发送 A、B、C……我们所要实现的逻辑是判断 appData.isTouchbarPress之后判断触摸滑条滑动方向左划表示按键 F2右划表示 F3。 动作表示按键左划F2音量减小快捷键右划F3音量增大快捷键 void APP_EmulateKeyboard(void) {if (appData.isTouchbarPress){/* Clear the touchbar pressed flag */appData.isTouchbarPress false;/* If the touchbar was pressed, update the key counter and then* add the key to the key code array. */if ((qtm_scroller_data1[0].right_hyst 0x08) 0x08){appData.key USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F3;printf(F3 pressed\n);}else if ((qtm_scroller_data1[0].left_hyst 0x08) 0x08){appData.key USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F2;printf(F2 pressed\n);}else{appData.key USB_HID_KEYBOARD_KEYPAD_RESERVED_NO_EVENT_INDICATED;}appData.keyCodeArray.keyCode[0] appData.key;/* Start a touch press ignore counter */}else{/* Indicate no event */appData.keyCodeArray.keyCode[0] USB_HID_KEYBOARD_KEYPAD_RESERVED_NO_EVENT_INDICATED;}KEYBOARD_InputReportCreate(appData.keyCodeArray,appData.keyboardModifierKeys, keyboardInputReport); }功能展示 下载程序后连接 PC可以发现 PC 识别该 USB HID 设备。通过左右滑动触摸滑条可以实现控制 PC 音量的效果。注意操作的时候板子不要接触桌面否则触摸滑条会误触。 详细展示参见B站基于SAMD21G17D的触摸滑条USB HID设备实现及控制PC音量的功能开发 项目总结 本次项目通过 USB HID 协议与触摸库实现了将触摸滑条作为 USB HID 设备左右滑动表示按键按下报告至 PC从而实现音量控制的功能开发。MPLAB X IDE 只能说一言难尽MCC 每次打开要半天对网络环境要求严苛Project Graph 界面式调用模块出发点是好的但是有时修改配置会卡死例如 STDIO 模块还需要单独调用从而实现 printf 重定向。单就触摸库的开发来说这部分上手很快。
http://www.pierceye.com/news/144772/

相关文章:

  • 网站 云建站设计网站推荐室内
  • 网站怎么自适应屏幕云南建设投资集团网站
  • qq中心官方网站两个网站如何使用一个虚拟主机
  • 泰安网站制作推荐电脑网页游戏排行榜前十名
  • 石家庄最好的网站建设公司上海都有哪些企业公司
  • 网站的链接要怎么做官网制作公司
  • 学生成绩管理系统 网站建设站长之家源码下载
  • wap多用户网站微信端的网站开发python
  • 网络营销中自建网站厦门湖里区建设局网站
  • 公司建设网站的申请信用卡做盗版影视网站违法吗
  • 商务网站推广技巧包括什么移动网站开发教程
  • 北京网站备案域名温州制作网站公司
  • 门户网站建设工作流程做网站的背景图片
  • 用360云盘做网站简洁个人博客网站模板
  • 沈阳网站建设 网络服务wordpress媒体库图片不显示
  • 什么公司做网站出名大商创 多用户商城
  • 学校网站管理网站制作开发及优化是什么
  • wordpress获取所有标签页那些网站用不着做优化
  • 大有网网站现在较为常用的网站开发技术
  • 太原建站公司有哪些网站统计 wordpress
  • 网站轮播图怎么保存盛锡福网站
  • 做网站用百度浏览器网络营销案例分析试题
  • 当建设部门网站南宁网站的优化
  • wordpress访问文件夹成都黑帽seo
  • 上海市建设工程安全质量监督总站网站做配资网站
  • 网站管理建设的需求分析小程序开发教程免费
  • 石家庄网站建设电话重庆最便宜的网站建设
  • 人才网站建设策划书pc网站建设
  • 做网站用哪几个端口 比较好微信营销
  • 网站开发价格有专业做网站的吗网站公司