最新要闻
- 播报:罗马诺:皇马已向纳乔发送续约文件,球员告知国米他不会加盟
- 辽宁省62个地理标志产品入选《中国地理标志产品英文宣传册》 每日快播
- 凌志软件(688588)6月6日主力资金净卖出1159.81万元 当前视点
- 焦点速看:专家共话未成年人数据保护,小天才分享内容安全保护等功能设计!
- vlc设置访问输出模块为ftp教程
- 每日消息!价格超3万元 Mac Studio明天预售:苹果最强芯片M2 Ultra加持
- 全球快看:小鹏找林志颖代言是不是好点子?高管回应:当然是
- 苹果Vision Pro头显会颠覆XR行业吗?HTC王雪红:重大分水岭_天天消息
- 全电池驱动、零污染 我国新能源轻轨车辆首次出口海外-全球快讯
- 行业首创双水泵!超频三金刚双擎DE水冷散热器图赏 天天信息
- 越博动力业绩预告不准确,公司及财务总监收警示函-每日看点
- 每日热文:满负荷生产是什么意思计算公式(猪场满负荷生产是什么意思)
- 上行动能走弱 债市调整压力渐显
- 厦门疾控:本月谨防登革热和手足口病
- 全日空首席执行官希望增加波音787订购数量
- 香港总商会将香港今年GDP增长预测上调至4.2%
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
STM32F429 Discovery开发板应用:实现USB虚拟串口(VPC)
MCU:STM32F429ZIT6开发环境:STM32CubeMX+MDK5
(资料图)
实现USB的虚拟串口不需要去理解USB的底层驱动,只需要STM32CubeMX去配置生成工程即可。
首先需要打开STM32CubeMX工具。输入开发板MCU对应型号,找到开发板对应封装的MCU型号,双击打开(图中第三)。
此时,双击完后会关闭此界面,然后打开一个新界面。
然后,我们开始基本配置。
现在我们选择一个LED作为系统LED,该步骤可以忽略,只是本人喜欢这样子。以硬件原理图的LD3为例子。
基本配置除了时钟树外,基本上已经配置好了。
现在配置USB类型。查看硬件原理图。
现在配置时钟树
配置完成,完善工程,生成工程。
到此,STM32CubeMX工具的使用结束!可以发现在桌面已经生成了vcomProgram工程。
USB虚拟串口还需要装驱动才能被是识别到,在Win7、Win8机型PC中需要到ST官网下载。win10及以上机型在本地已有驱动,无需安装。
使用MDK5打开USB_VPC工程打开。点击魔法棒,勾选微库。选择对应的下载器,勾选下载完复位允许。USB线一端接开发板USB_Device,一端接PC。
现在可以开始实验了,实现VPC的发送与回传,并重定向printf函数。
然后再插播一条,看帖子说是,刚下载完程序时,是识别不出端口的。需要在上电的情况下从PC那拔插一次USB线。然后可以使用一个函数解决这个问题。可以在gpio.c中写入函数,然后记得在头文件声明。使用要在MX_USB_DEVICE_Iint()之前。
(我没遇到这个问题,但是我还是放到工程了,但是我没用这函数。)
1 /* USER CODE BEGIN 2 */ 2 /*USB 重新枚举函数*/ 3 void USB_Reset(void) 4 { 5 GPIO_InitTypeDef GPIO_InitStruct = {0}; 6 7 __HAL_RCC_GPIOA_CLK_ENABLE(); 8 9 GPIO_InitStruct.Pin = GPIO_PIN_12;10 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;11 GPIO_InitStruct.Pull = GPIO_NOPULL;12 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;13 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);14 15 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_12,GPIO_PIN_RESET);16 HAL_Delay(100);17 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_12,GPIO_PIN_SET);18 }19 /* USER CODE END 2 */
实验环节:发送与回传
在main.c中(截取片段,修改部分)
1 /* Private includes ----------------------------------------------------------*/ 2 /* USER CODE BEGIN Includes */ 3 #include "usbd_cdc_if.h" 4 /* USER CODE END Includes */ 5 6 /* Private typedef -----------------------------------------------------------*/ 7 /* USER CODE BEGIN PTD */ 8 9 /* USER CODE END PTD */10 11 /* Private define ------------------------------------------------------------*/12 /* USER CODE BEGIN PD */13 /* USER CODE END PD */14 15 /* Private macro -------------------------------------------------------------*/16 /* USER CODE BEGIN PM */17 18 /* USER CODE END PM */19 20 /* Private variables ---------------------------------------------------------*/21 22 /* USER CODE BEGIN PV */23 24 /* USER CODE END PV */25 26 /* Private function prototypes -----------------------------------------------*/27 void SystemClock_Config(void);28 /* USER CODE BEGIN PFP */29 30 /* USER CODE END PFP */31 32 /* Private user code ---------------------------------------------------------*/33 /* USER CODE BEGIN 0 */34 35 /* USER CODE END 0 */36 37 /**38 * @brief The application entry point.39 * @retval int40 */41 int main(void)42 {43 /* USER CODE BEGIN 1 */44 45 /* USER CODE END 1 */46 47 /* MCU Configuration--------------------------------------------------------*/48 49 /* Reset of all peripherals, Initializes the Flash interface and the Systick. */50 HAL_Init();51 52 /* USER CODE BEGIN Init */53 54 /* USER CODE END Init */55 56 /* Configure the system clock */57 SystemClock_Config();58 59 /* USER CODE BEGIN SysInit */60 // USB_Reset();61 /* USER CODE END SysInit */62 63 /* Initialize all configured peripherals */64 MX_GPIO_Init();65 MX_USART1_UART_Init();66 MX_USB_DEVICE_Init();67 /* USER CODE BEGIN 2 */68 69 /* USER CODE END 2 */70 71 /* Infinite loop */72 /* USER CODE BEGIN WHILE */73 while (1)74 {75 /* USER CODE END WHILE */76 77 /* USER CODE BEGIN 3 */78 HAL_GPIO_TogglePin(Sys_led_GPIO_Port, Sys_led_Pin); 79 CDC_Transmit_HS((uint8_t *)"hello\r\n",7);80 HAL_Delay(2000);81 }82 /* USER CODE END 3 */83 }
在usbd_cdc_if.c中(截取片段,修改部分)
1 /** 2 * @brief Data received over USB OUT endpoint are sent over CDC interface 3 * through this function. 4 * 5 * @note 6 * This function will issue a NAK packet on any OUT packet received on 7 * USB endpoint until exiting this function. If you exit this function 8 * before transfer is complete on CDC interface (ie. using DMA controller) 9 * it will result in receiving more data while previous ones are still10 * not sent.11 *12 * @param Buf: Buffer of data to be received13 * @param Len: Number of data received (in bytes)14 * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAILL15 */16 static int8_t CDC_Receive_HS(uint8_t* Buf, uint32_t *Len)17 {18 /* USER CODE BEGIN 11 */19 CDC_Transmit_HS(Buf, *Len);20 21 USBD_CDC_SetRxBuffer(&hUsbDeviceHS, &Buf[0]);22 USBD_CDC_ReceivePacket(&hUsbDeviceHS);23 return (USBD_OK);24 /* USER CODE END 11 */25 }
实验结果(波特率随意选)
实验环节:打印重定向
在usbd_cdc_if.c中(截取片段,修改部分),声明在usbd_cdc_if.h文件。
1 /* USER CODE BEGIN PRIVATE_FUNCTIONS_IMPLEMENTATION */ 2 #include "stdarg.h" 3 #include "stdio.h" 4 5 uint8_t usbtemp[64]; 6 void usbvcom_printf(const char *format,...) 7 { 8 uint16_t len; 9 va_list args;10 11 va_start(args, format);12 len = vsnprintf((char *)usbtemp, sizeof(usbtemp)+1, (char *)format, args);13 va_end(args);14 15 CDC_Transmit_HS(usbtemp, len);16 }17 18 /* USER CODE END PRIVATE_FUNCTIONS_IMPLEMENTATION */
然后就可以像printf那样使用了,实测过是正常的!
时代越来越好,开发效率越来越高,希望能帮助到你!!!
还有就是,开源万岁。
关键词:
STM32F429 Discovery开发板应用:实现USB虚拟串口(VPC)
关于SQL语句中-使用正则的方式匹配-排除包含任意字母点两个字符的字符串
播报:罗马诺:皇马已向纳乔发送续约文件,球员告知国米他不会加盟
辽宁省62个地理标志产品入选《中国地理标志产品英文宣传册》 每日快播
每日机构分析:6月6日_全球关注
凌志软件(688588)6月6日主力资金净卖出1159.81万元 当前视点
焦点速看:专家共话未成年人数据保护,小天才分享内容安全保护等功能设计!
vlc设置访问输出模块为ftp教程
每日消息!价格超3万元 Mac Studio明天预售:苹果最强芯片M2 Ultra加持
全球快看:小鹏找林志颖代言是不是好点子?高管回应:当然是
苹果Vision Pro头显会颠覆XR行业吗?HTC王雪红:重大分水岭_天天消息
全电池驱动、零污染 我国新能源轻轨车辆首次出口海外-全球快讯
行业首创双水泵!超频三金刚双擎DE水冷散热器图赏 天天信息
越博动力业绩预告不准确,公司及财务总监收警示函-每日看点
每日热文:满负荷生产是什么意思计算公式(猪场满负荷生产是什么意思)
上行动能走弱 债市调整压力渐显
厦门疾控:本月谨防登革热和手足口病
全日空首席执行官希望增加波音787订购数量
天天时讯:易基因:小檗碱通过介导m6A mRNA甲基化调控斑马鱼肝细胞氧化应激、凋亡和自噬
Vue2知识点简要
一朝学信奥,十年也难跑
当前观点:Unity框架中的核心类
近13万汉藏对照词典汉藏翻译ACCESS\EXCEL数据库
广西发改委:地方政府不对国企债务承担偿债责任-当前热讯
做好“加减法” 增粮有实招——部分粮食主产区一线扫描
香港总商会将香港今年GDP增长预测上调至4.2%
环球观天下!祝高考生前程似锦的句子
特斯拉索赔500万元案开庭 车顶维权女车主当庭反诉
卢伟冰给高考生几个小建议 米粉看完后信心满满_当前看点
全球观天下!河北一过山车停电多名游客倒挂半空:备用电源启用后均平安下车
你买了吗?广东一公司进口日本核辐射食品被罚1万:大多已售出
世界热点!电梯突发故障丈夫下意识护妻儿:家人身体无大碍
中国气象局:我国已进入主汛期和灾害多发期 要加强临灾预警
java springboot整合elasticsearch时关于LocalDateTime处理的方式
昇腾实战丨DVPP媒体数据处理图片解码问题案例
每日头条!实际薪资水平低迷引发前景担忧 日债收益率周二普遍回落
【新华500】新华500指数(989001)6日跌1%
最高可抵6000元!苹果宣布Mac Studio等设备加入换购计划
今日讯!大厂中第一个对标ChatGPT 百度文心一言2个月来性能已提高50倍
拼了!35岁男子为考清华复读14年:没浪费教育资源 奖金仅够生活-天天快播
淄博夜空500架无人机助力高考:为学子加油 当前速递
聚焦:“牧马人同款大皮卡”全新Jeep角斗士谍照曝光
科林电气:中标3个国家电网采购项目,中标总金额约9475万元_新动态
环球观天下!在 Windows 系统上,你可以使用 Certbot 生成 Let's Encrypt 的泛域名证书。以下是具体步骤
焦点速看:如何让你的结构体更高效
【专为苛刻的数据环境而构建】上海道宁为您带来世界上先进的矢量原生、时间序列和实时分析数据库——kdb系列产品|世界新消息
天天快消息!提升生产线效率与质量:智慧工厂的优势与应用
Java-模板生成PDF方式2-PDFBox
智慧医疗让看病更便捷-新资讯
马斯克扔下车圈核弹:特斯拉FSD可以给其他车企用!-每日热点
小米又一爆款诞生!小米手环8国内出货破110万:上市不到俩月 全球短讯
价值或达500亿 国铁大规模采购动车组:350公里时速复兴号就有103组
疑似比亚迪F品牌官方账号成立:名为“方程豹汽车”
奇瑞杀疯了!5月销量近14万辆 一路反超吉利、长城
世界热讯:电解槽和氢能矿卡上榜内蒙古2023年技术装备首台(套)名单
Web安全-渗透测试-基础知识03
小学生发现深沟露出车轮救人一命被网友点赞心细:老人驾老头乐失控导致
天天热点评!全球第一套!龙芯2K1500控制器不间断运行142天3408小时
喝酒去世网红家墙壁写着钱比命重要 网友唏嘘!家人:从没割过粉丝韭菜
“宇宙猜想”CTO叶云出席元宇宙论坛并发表演讲
新品未能提振股价,苹果概念股跌幅扩大,华兴源创、长盈精密跌超15% 环球快讯
饶派杯 XCTF 车联网挑战赛 mqttsvr 复现|当前观点
【天天速看料】一条视频带你回忆高三这一年 网友感动:祝愿每位考生忙而不茫
《暗黑破坏神4》正式发售:标准版终于能玩了
苹果Vision Pro头戴支持近视用户:需额外掏钱买插片-世界观焦点
牛骨头汤有营养吗 牛骨头汤是否有营养
读改变未来的九大算法笔记05_数字签名
Git hooks与自动化部署-全球新消息
每日聚焦:直播平台源码画面质量功能的实现
云图说|ModelArts开发环境,让AI开发、探索、教学更简单 世界新要闻
苹果XR头显Vision Pro王炸登场:3499美元起售,2024年开卖-环球观天下
经常挖鼻孔会影响颜值 严重可诱发颅内感染
天天观热点:小米王腾分享苹果Vision Pro看法:令人赞叹、但普及需要时间
QQ空间18周岁 第一代美女网红鼻祖露面:16年没变样
压力给到合资品牌 上汽大众永久关停第一工厂:部分产线搬迁|全球要闻
全国爱眼日,王贾桥小学倡导学子保护视力、珍爱光明
linux tar解压命令总结
速讯:848中国鱼类资料图谱大全ACCESS\EXCEL数据库
顶象无感验证码助力京客隆提升数字化运营能力
MySQL用户与权限管理_每日热门
全球快播:电池级碳酸锂价格重回30万元/吨 锂盐厂商二季度业绩可期
抄底!百度网盘超级会员年卡178元:送优酷+喜马拉雅 世界实时
防止别人蹭热点 苹果Vision Pro完全不提元宇宙三个字
16.99万起!零重力座椅、无框车门、三种动力选择 长安深蓝S7即将上市
制作成本16.5亿!《封神三部曲》第一部定档:7月20日上映 焦点速读
天天消息!孙俪代言!超能双离子洗衣粉骨折价大促:39.9元11斤
国内卫浴二线品牌有哪些_国内卫浴二线品牌-最新
低利率环境与发行优势助推 商业银行绿色金融债发行火热
抽检合格率97.26%!江西加强中高考期间校园食品安全监管
阿根廷中国行 花30万可让梅西敬酒、合影?官方回应
续航2小时、仅售2万5!苹果首款AR眼镜开卖:还有半年时间攒钱
天天观天下!《暗黑4》德鲁伊玩家发声:不要随便攻击熊熊!
移动SSD也白菜价了!梵想PS2000 1TB只要279元 不到小米一半
天天日报丨天猫京东红包加码!最高23888元 每天最多领3次
阿根廷中国行 花30万可让梅西敬酒、合影?官方回应
在 Linux 中使用 sFTP 上传或下载文件与文件夹
日本工人的实际工资在4月份继续下降,尽管已经反映了在年度薪资谈判中所取得的加薪,这给考虑召集选举的首相岸田文雄带来挑战|天天时讯
环球速递!76核核显GPU足以毁天灭地 苹果Mac Pro不支持任何独显
今亮点!AMD确认锐龙8000明年问世:Zen5 CPU、亮机核显大升级
iPhone不用再说“嘿 Siri”了!可能不好用:用户担忧误唤醒_每日快讯