教育教学成果展示网站建设怎么用群晖nas做网站

pingmian/2025/10/9 11:34:11/文章来源:
教育教学成果展示网站建设,怎么用群晖nas做网站,建设营销型网站制作,开发公司财务管理制度STM32CubeMX学习笔记-USB接口使用#xff08;CDC虚拟串口#xff09; 一、USB简介二、新建工程1. 打开 STM32CubeMX 软件#xff0c;点击“新建工程”2. 选择 MCU 和封装3. 配置时钟4. 配置调试模式 三、USB3.1 参数配置3.3 配置时钟3.4 USB Device 四、生成代码五、查看端口… STM32CubeMX学习笔记-USB接口使用CDC虚拟串口 一、USB简介二、新建工程1. 打开 STM32CubeMX 软件点击“新建工程”2. 选择 MCU 和封装3. 配置时钟4. 配置调试模式 三、USB3.1 参数配置3.3 配置时钟3.4 USB Device 四、生成代码五、查看端口六、USB串口回环发送6.1 虚拟串口发送6.2 虚拟串口接收6.3 虚拟串口重定向 七、工程代码八、注意事项 原创链接 1 一、USB简介 USBUniversal Serial BUS通用串行总线是一个外部总线标准用于规范电脑与外部设备的连接和通讯。是应用在 PC 领域的接口技术。USB 接口支持设备的即插即用和热插拔功能。USB 是在 1994 年底由英特尔、康柏、IBM、Microsoft 等多家公司联合提出的。 USB 发展到现在已经有 USB1.0/1.1/2.0/3.0 等多个版本。目前用的最多的就是 USB1.1 和 USB2.0USB3.0 目前已经开始普及。STM32F103 自带的 USB 符合 USB2.0 规范不过 STM32F103 的 USB 都只能用来做设备而不能用作主机。 标准 USB 共四根线组成,除 VCC/GND 外,另外为 D,D-; 这两根数据线采用的是差分电压的方式进行数据传输的。在 USB 主机上D-和 D都是接了 15K 的电阻到低的所以在没有设备接入的时候D、D-均是低电平。而在 USB 设备中如果是高速设备则会在 D上接一个 1.5K 的电阻到 VCC*而如果是低速设备则会在 D-上接一个 1.5K 的电阻到 VCC。*这样当设备接入主机的时候主机就可以判断是否有设备接入并能判断设备是高速设备还是低速设备。 STM32F103 的 MCU 自带 USB 从控制器符合 USB 规范的通信连接PC 主机和微控制器之间的数据传输是通过共享一专用的数据缓冲区来完成的该数据缓冲区能被 USB 外设直接访问。这块专用数据缓冲区的大小由所使用的端点数目和每个端点最大的数据分组大小所决定每个端点最大可使用 512 字节缓冲区专用的 512 字节和 CAN 共用最多可用于 16 个单向或 8 个双向端点。USB 模块同 PC 主机通信根据 USB 规范实现令牌分组的检测数据发送/接收的处理和握手分组的处理。整个传输的格式由硬件完成其中包括 CRC 的生成和校验。 二、新建工程 1. 打开 STM32CubeMX 软件点击“新建工程” 2. 选择 MCU 和封装 3. 配置时钟 RCC 设置选择 HSE(外部高速时钟) 为 Crystal/Ceramic Resonator(晶振/陶瓷谐振器) 选择 Clock Configuration配置系统时钟 SYSCLK 为 72MHz 修改 HCLK 的值为 72 后输入回车软件会自动修改所有配置 4. 配置调试模式 非常重要的一步否则会造成第一次烧录程序后续无法识别调试器 SYS 设置选择 Debug 为 Serial Wire 三、USB 3.1 参数配置 在 Connectivity 中选择 USB 设置并勾选 DeviceFS 激活 USB 设备。 在 Parameter Settings 进行具体参数配置。 Speed Full Speed 12MBit/s固定为全速 Low Power 默认 Disabled在任何不需要使用usb模块的时候通过写控制寄存器总可以使usb模块置于低功耗模式low power mode suspend模式。在这种模式下不产生任何静态电流消耗同时usb时钟也会减慢或停止。通过对usb线上数据传输的检测可以在低功耗模式下唤醒usb模块。也可以将一特定的中断输入源直接连接到唤醒引脚上以使系统能立即恢复正常的时钟系统并支持直接启动或停止时钟系统。 3.2 引脚配置 USB 的 DP 引脚必须上拉 1.5K 欧的电阻电脑才能检测到 USB否则检测不到。 查看野火指南者开发板原理图可知需要将 PD6 配置为低电平使能 USB。 在右边图中找到 PD6 引脚选择 GPIO_Output。 在GPIO output level 中选择 Low 输出低电平。 3.3 配置时钟 选择 Clock ConfigurationUSB 时钟配置为 48MHz且来源最好是外部晶振分频得到。 3.4 USB Device USB有主机Host和设备Device之分。一般电脑的USB接口为主机接口而键盘、鼠标、U盘等则为设备。 部分型号的STM32芯片有1~2个USB接口。像STM32F103系列的有一个USB Device接口STM32F407系列的有2个USB接口既可以作为HOST又可以作为Device还可以作为OTG接口。 在 Middleware 中选择 USB_DEVICE 设置在 Class For FS IP 设备类别选择 Communication Device ClassVirtual Port Com 虚拟串口。 参数配置保持默认。 设备描述符保持默认。 四、生成代码 输入项目名和项目路径 选择应用的 IDE 开发环境 MDK-ARM V5 每个外设生成独立的 ’.c/.h’ 文件 不勾所有初始化代码都生成在 main.c 勾选初始化代码生成在对应的外设文件。 如 GPIO 初始化代码生成在 gpio.c 中。 点击 GENERATE CODE 生成代码 五、查看端口 烧录默认代码连上电脑可在电脑上看到对用的串口 Win10系统下不需要装任何驱动就能使用USB虚拟串口但更低版本的系统比如Win7/8则必须要安装ST官方提供的VCP驱动https://www.st.com/en/development-tools/stsw-stm32102.html 六、USB串口回环发送 6.1 虚拟串口发送 添加头文件 #include “usbd_cdc_if.h”。 在 main() 的死循环中添加 CDC_Transmit_FS() 函数。 #include usbd_cdc_if.h/*** brief The application entry point.* retval int*/ int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USB_DEVICE_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 *//* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){CDC_Transmit_FS(hello, 5);HAL_Delay(1000);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */ }查看打印 6.2 虚拟串口接收 打开 usbd_dcd_if.c 文件 找到 CDC_Receive_FS()函数这个函数如果USB虚拟串口数据收到就会被调用我们在这个函数中将收到的数据在发回去只需要添加 CDC_Transmit_FS(Buf, *Len); 这一句即可。 使用串口调试助手给它发数据 6.3 虚拟串口重定向 打开 usbd_dcd_if.c 文件 添加以下代码 /* USER CODE BEGIN INCLUDE */ #include stdarg.h /* USER CODE END INCLUDE */ ------------------------------------------------------- /* USER CODE BEGIN PRIVATE_FUNCTIONS_IMPLEMENTATION */void usb_printf(const char *format, ...) {va_list args;uint32_t length;va_start(args, format);length vsnprintf((char *)UserTxBufferFS, APP_TX_DATA_SIZE, (char *)format, args);va_end(args);CDC_Transmit_FS(UserTxBufferFS, length); }/* USER CODE END PRIVATE_FUNCTIONS_IMPLEMENTATION */在 main() 的死循环中添加 usb_printf() 函数。 /*** brief The application entry point.* retval int*/ int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USB_DEVICE_Init();/* USER CODE BEGIN 2 *//* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){usb_printf(\r\n****** USB-CDC Example ******\r\n\r\n);HAL_Delay(1000);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */ }查看打印 七、工程代码 链接https://pan.baidu.com/s/1cvjfMMvoDGj9Zy__BCuiEg?pwdtllo 提取码tllo 八、注意事项 用户代码要加在 USER CODE BEGIN N 和 USER CODE END N 之间否则下次使用 STM32CubeMX 重新生成代码后会被删除。 如果USB端口出现感叹号设备无法启动的问题可适当将堆改大如0x400 链接地址https://www.jianshu.com/p/b415a8cf9eb8 作者Leung_ManWah ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/90475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做网站的叫什么职位wordpress 图片加链接

小编有一个朋友,他的信用记录一直非常好,无论是贷款还是信用卡,一直都按时还款,而且每次都是提前好几天还,从来没有逾期过。不过元旦期间他去旅游,可能是玩的太嗨,忘记了1号是他的还款日&#x…

企业网站建设流程与方法 论文网页制作工具教程

itertools.cycle 是 Python 标准库中的一个函数,它用于创建一个无限循环迭代器。它接受一个可迭代对象作为参数,并会不断重复该可迭代对象的元素。 使用 itertools.cycle 可以方便地创建一个可以无限循环的迭代器。当你需要反复访问一个可迭代对象的元素…

网站建设公司厦门简单官网模板

前段时间发的日上直邮的微头条和视频,很多朋友遇到一些不明白的地方,我把问题汇总了一下,统一回答一下哦其实因为疫情,很多免税店都在做活动,活动方式不太一样,有好多种,我跟大家分享的只是其中…

长春火车站到龙嘉机场动车时刻表网站方案报价

Vivado synthesis可以解释各种RAM编码风格,并将它们映射到分布式RAM中或块RAM。此操作执行以下操作: •无需手动实例化RAM基元 •节省时间 •保持HDL源代码的可移植性和可扩展性从编码示例下载编码示例文件。 在分布式RAM和专用RAM之间的选择块存储器…

南山网站建设-信科网络wordpress前台英文后台中文

📟作者主页:慢热的陕西人 🌴专栏链接:C基于多设计模式下的同步&异步日志系统 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 主要内容实现了日志代码设计的实…

电商网站项目静海网站建设

​ 在这个繁忙的时代,简单而高效的工具成为生活和工作中的宝贵助手。以下是五款小巧而实用的小工具,或许正是你所需的生活小搭档。 1.远程终端——MobaXTerm ​ MobaXTerm是一款集成了多种网络工具的远程终端软件,可以通过SSH、Telnet、RDP…

个人音乐网站开发优秀界面设计作品

目前流行的各类前端框架,不管是react, angular还是vue,都有一个共同点,那就是支持组件化开发,但事实上随着浏览器的发展,现在浏览器也原生支持组件式开发,本文将通过介绍Web Components 的三个主要概念&…

网站开发工资高么怎样下载黑龙江人社app

30分钟快速搭建移动应用直传服务 背景 这是一个移动互联的时代。手机APP上传的数据会越来越多。把数据存储的问题交给OSS, 让开发者能更加专注于自己的应用逻辑。 那么怎么样基于OSS构建一个APP存储系统呢? 目的 本教程就是让你在30分钟内搭建一个基于OS…

怎么做查询网站做网站编辑需要学什么

public class Test{public static void main(String[] args){Person p new Person();} } /* 4.修饰的变量是一个常量(所有字符都大些 XXX 或者 XXX_XXX),只能赋值一次!final 固化的都是显示初始化的值(定义并初始化)(或者构造函数中的特定初始化的值&am…

绿色风格网站浙江自己如何做网站

文章目录 一:Dubbo注册中心引言 1:什么是Dubbo的注册中心? 2:注册中心关系图解 3:引入注册中心服务执行流程 4:Dubbo注册中心好处 5:注册中心核心作用 二:注册中心实现方案 …

金色财经网站开发视频网站 界面设计

编者按:1991年微软研究院成立,三十年坚持不懈的探索成就了微软研究院今天在全球计算机科研领域的位置。在接下来的10年、30年中,科研世界会呈现何种面貌?下一个技术创新的突破点在哪里?微软又将怎样持续发挥作用&#…

创建网站的好处怀化seo快速排名

目录 1 创建用户数据源2 实现登录逻辑3 搭建登录页面4 设置登录框5 实现登录的逻辑6 用户注册总结 原来产品在创建应用的时候可以创建模型应用,模型应用对应我们小程序的后端。最新的更新已经将模型应用的能力下线,那我们不得不自己实现一下后端的逻辑。…

wordpress文本温州seo方法

效果演示 实现了一个登录注册页面的切换效果,当用户点击登录或注册按钮时,会出现一个叠加层,其中包含一个表单,用户可以在表单中输入用户名和密码,然后点击提交按钮进行登录或注册。当用户点击返回按钮时,会…

组装电脑报价网站源码单页面网站怎么做的

正题 题目链接:https://www.luogu.com.cn/problem/CF708E 题目大意 有n∗mn*mn∗m的矩形网格,然后每次每行最左边和最右边的格子各有pcdp\frac{c}{d}pdc​的概率会消失,进行kkk次。 求最后所有格子依旧四联通的概率,在%(1097)\%(10^97)%(1…

上海国外网站建设python怎么开发网站

文章目录 一、题目描述示例 1示例 2示例 3 二、代码三、解题思路 一、题目描述 给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。 示例 1 输入:nums [3,2,3] 输出:[3]示例 2 输入:nums [1] 输出&…

网站建设官网怎么收费文化传媒 网站设计

如果你将跑在Windows下的项目(如:php、html)迁移到Linux下,由于Windows操作系统中,文件名是不区分大小写的;而Linux系统是大小写敏感,会导致有些网页出现404情况。 解决方法有大概4种: 1、 url rewrite 2、…

吴江市中云建设监理有限公司网站wordpress无法访问图片

火星探索:技术挑战与前沿进展 一、引言 火星,这颗红色的星球,长久以来一直吸引着人类的目光。随着科技的飞速发展,火星探索已经从纯粹的科幻梦想逐渐转变为现实的研究课题。然而,火星探索仍然面临着诸多技术挑战。本文将深入探讨火星探索的关键技术、现有技术瓶颈以及前沿…

做磁性材料在哪些网站推广比较好怎样做网站文件验证

Every day a Leetcode 题目来源:2661. 找出叠涂元素 解法1:哈希 题目很绕,理解题意后就很简单。 由于矩阵 mat 中每一个元素都不同,并且都在数组 arr 中,所以首先我们用一个哈希表 hash 来存储 mat 中每一个元素的…

做黑网站赚钱吗网站开发费入账

今天带来一款十分有趣的地图应用,同样也是在线地图工具,如果我们想要制作此类风格的地图,这款工具定能助我们一臂之力。 按照惯例先给出网址: Dungeon Scrawl | Free Online D&D Map Maker 进入网站,点击Start S…

昆明企业自助建站系统做网站的费用记哪个科目

目录 📋前言 ⛳️【SQL Serverssms】安装 1. SQL Server自定义安装 2. SSMS安装 ⛳️【SQL Server】卸载 📋前言 🌈个人主页:Sarapines Programmer 🔥 系列专栏:本期文章收录在《宝藏工具使用手册》&am…