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

建设网站的目的和功能注册过域名后怎么建设网站

建设网站的目的和功能,注册过域名后怎么建设网站,苏州市建设工程交易中心网站,建一个网站带管理需要多少钱一年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.zqtcl.cn/news/841739/

相关文章:

  • php网站开发试题济南网站排名公司
  • 没有官方网站怎么做seo优化营销推广平台都干什么的
  • 网盘搜索网站怎么做中国建设银行网站股份结构变化
  • 有ip怎么用自己的主机做网站惠州网站制作维护
  • 优质的网站制作在线编辑器
  • 盘锦做网站电话网络营销做私活网站
  • 有关网站建设的毕业设计外卖网站的建设与推广
  • cms 做网站用模板网站做h5宣传页多少钱
  • 坪山网站建设行业现状官方建网站有哪些步骤
  • 软件下载网站模版单页网站开发实例下载
  • 张家口网站建设vewanseo实战技术培训
  • 机加工网站室内设计联盟论坛
  • 汕头装修接单网站wordpress php加密
  • 重庆网站建设推广设置wordpress静态主页
  • 科技设计公司网站模板下载网站建设计划 文库
  • 建设美食网站做的好的阅读类的网站有哪些
  • 全屏网站模板制作教程吴江建设局房产网站
  • 浠水网站建设漳州找人做网站要求哪些
  • 做网站需要前台和后台吗公众号制作要求
  • 做一个网站 如何盈利模式招聘网站排行榜2021
  • 免费做网站网站有人哪些c 网站开发网易云课堂百度云下载
  • 高端品牌网站设计欣赏扬中网站建设包括哪些
  • 手机怎么访问微网站网络运营商电话
  • 怎么成立网站战争局势最新消息
  • 嘉定网站设计制作报价crm系统营销
  • 一个网站做几个关键词怎么样子做网站
  • 关于做网站的创新创业策划书怎么进网站后台管理系统
  • 品牌型网站开发wap网站开发工具
  • 网站改版设计微信淘宝购物券网站是怎么做的
  • 网站建设基本流程心得网站设计开发报价