IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 利用STM32CubeMX软件生成USB_DEVICE_Virtual Port Com(虚拟串口) -> 正文阅读

[嵌入式]利用STM32CubeMX软件生成USB_DEVICE_Virtual Port Com(虚拟串口)

一、测试平台:
MCU:STM32F429NIH6
工具:STM32CubeMX软件
编译软件:MDK

二、配置步骤
(1).打开STM32CubeMX软件,创建新的工程文件,先生成一个的串口的收发例程,需要实现将串口收到的数据发送的出来,生成串口的例程这里不再详细介绍。
(2).配置USB_OTG_FS,由于电路板上USB管脚连接的是PA11和PA12,所以这里配置USB_OTG_FS,Mode项配置Device Only,同时开启中断。
在这里插入图片描述
(3).配置USB_DEVICE,Class For FS IP项选择 Communication Device Class(Virtual Port Com)。
在这里插入图片描述

(4).usbd_cdc_if.c 文件中改写CDC_Receive_FS函数,作用是将收到的数据回传回去测试虚拟串口收发功能。

static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)
{
  /* USER CODE BEGIN 6 */
	unsigned short dwCnt=0;
	
	for(dwCnt=0;dwCnt<*Len;dwCnt++)
	{
		UsbTxdData[dwCnt]=Buf[dwCnt];
	}
	CDC_Transmit_FS(UsbTxdData,*Len);
	
  USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
  USBD_CDC_ReceivePacket(&hUsbDeviceFS);
  return (USBD_OK);
  /* USER CODE END 6 */
}

在这里插入图片描述
(5).添加USB 打印函数,usbd_cdc_if.c 开头引用头文件“#include 《stdarg.h》”(改为单扩折号),末尾增加以下函数,即可实现虚拟串口打印功能。

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);
}

usb_printf("Test int: i = %d\r\n", dwData);
usb_printf("Test float: i = %f", 1.234);

在这里插入图片描述
(6).USB驱动文件说明
usb_device.c 里面仅包含一个 USB 设备函数初始化函数 MX_USB_DEVICE_Init(),在程序开始时调用。
usbd_cdc_if.c 为 USB 的 CDC 类应用层文件,里面包含虚拟串口的接收,发送和控制等函数。
usb_desc.c 包含 USB 的描述符,以及 USB 枚举处理等函数。
usb_conf.com 为 USB 管脚配置文件,包含引 USB 引脚初始化以及参数设置,中断回调函数等

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:50:48  更:2022-10-17 12:53:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:36:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码