TencentOS-tiny 移植到STM32F407(MDK)

【RT-Thread】 TinyUSB挂载成U盘和文件系统,基于STM32F405RG RT-Thread将flash挂载到文件系统会挂载成U盘 阅读详情

目录

一、移植前的准备工作

1. 硬件(STM32测试板)

2. 软件

3. 裸机工程

3.1选择芯片STM32F407VET6

3.2 Pinout&Configuration >> 配置GPIO

3.3 Pinout&Configuration >> 配置时钟源

3.4 Pinout&Configuration >> 配置串口

3.5 时钟配置

3.6 生成工程配置

3.7 生成代码配置

3.8 生成代码

3.9 裸机代码结构

二、移植TencentOS-tiny

1. TencentOS-tiny 架构

2. 获取TencentOS-tiny源码

3. TencentOS-tiny源码文件

4.添加TencentOS-tiny源码

4.1 添加分组目录

4.2 添加arch源码

4.3 添加内核源码

4.4 添加cmsis_os源码

4.5 添加tos_config

4.7 添加头文件

5. 修改stm32f4xx_it.c代码

5.1 添加tos头文件

5.2 修改PendSV_Handler 中断函数

5.3 修改SysTick_handle中断函数

6. 修改usart.c代码

6.1 printf函数重定向

7. 修改mian.c代码

7.1 添加cmsis_os.h头文件

7.2 添加Task函数

7.3 内核初始化,创建Task,开启调度

三、验证TencentOS-tiny移植结果


一、移植前的准备工作

1. 硬件(STM32测试板)

MCU:STM32F407VET6(RAM: 196K ,FLASH: 512K,最高168MHz工作频率)

晶振:8MHz

2. 软件

编译器环境:Keil MDK-ARM Version 5.33

STM32cube 初始化代码生成器:STM32CubeMX Version 6.20

3. 裸机工程

使用 STM32cubeMX 生成裸机代码

3.1选择芯片STM32F407VET6

3.2 Pinout&Configuration >> 配置GPIO

板载三个指示灯,原理图如下图所示。

接着配置控制指示灯的引脚,配置为推挽输出,输出电平为高电平,保证初始化后指示灯是灭的。

在user Label(用户标签)中填写内容是用来表示该引脚的,代替实际引脚,提高代码的移植性。STM32cubeMX生成程序时会在 main.h 中添加宏定义,如下所示。

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __MAIN_H
#define __MAIN_H

......

/* Private defines -----------------------------------------------------------*/
#define BLUETOOTH_EN_Pin GPIO_PIN_2
#define BLUETOOTH_EN_GPIO_Port GPIOE
#define BLUETOOTH_RST_Pin GPIO_PIN_3
#define BLUETOOTH_RST_GPIO_Port GPIOE
#define LED_Run_Pin GPIO_PIN_4
#define LED_Run_GPIO_Port GPIOE
#define LED_Status_Pin GPIO_PIN_5
#define LED_Status_GPIO_Port GPIOE
#define LED_Error_Pin GPIO_PIN_6
#define LED_Error_GPIO_Port GPIOE

3.3 Pinout&Configuration >> 配置时钟源

3.4 Pinout&Configuration >> 配置串口

3.5 时钟配置

芯片的最高时钟频率可达到168MHz

3.6 生成工程配置

3.7 生成代码配置

3.8 生成代码

3.9 裸机代码结构


二、移植TencentOS-tiny

1. TencentOS-tiny 架构

TencentOS tiny 由一个轻量级 RTOS 内核 + 多个物联网组件构成,其主体架构图(引用 腾讯物联网终端操作系统)如下图所示:

2. 获取TencentOS-tiny源码

可直接前往Github:https://github.com/Tencent/TencentOS-tiny 直接进行下载。

3. TencentOS-tiny源码文件

打开 TencentOS-tiny 源文件,如下图所示。其中一共有13个文件夹(以最新源码为主),各个文件夹的具体说明见【doc / 09.Code_Directories.md】。这里较以往的源码增加一个qmk文件,是TencentOS的一个 Makefile 编译框架。

说明文件是使用Markdown语言编写的文件,后缀.md,查看使用 Visual Studio Code 软件。

4.添加TencentOS-tiny源码

新建工程文件夹develop,在其目录下新建如下图所示子目录文件夹。

board:目录下放入我们前面生成的裸机代码,全部复制粘贴即可;在裸机工程中添加 TencentOS-tiny 配置文件,可以直接找源码 board 目录下的 Demo 中找到相近的工程,将其 TOS_CONFIG 文件夹复制带该裸机工程中,这个配置主要用于我们对TencentOS-tiny 的功能进行裁剪,得到我们需要的配置。

Doc: 放入自己的文档。

其他:可以先全部从TencentOS-tiny源码中复制过来,然后按最终需要进行裁剪。

4.1 添加分组目录

在裸机工程中添加分组目录,分别为tos/arch、tos/kernel、tos/cmsis_os、tos/config。

4.2 添加arch源码

根据所使用的芯片选择合适的文件,当前移植的芯片是 STM32F407VET6 ,属于ARM Cortex M4 内核,使用的编译器是Keil MDK-ARM。

tos_cpu.c:在arch\arm\arm-v7m\common目录中;arm-v7m 架构共用的支持,是 TencentOS tiny 的 CPU 适配文件,包括堆栈初始化、中断适配等。

port_c.c:在 arch\arm\arm-v7m\cortex-m4\armcc 目录中;Systick操作接口移植实现。

port_s.S:在 arch\arm\arm-v7m\cortex-m4\armcc 目录中;是Tencent-Tiny 的任务调度汇编代码,主要用于弹栈压栈等处理工作。

注意:如果使用的编译器是 GCC,则选择 arch\arm\arm-v7m\cortex-m4\gcc 目录下的适配文件。

tos_fault.c:是针对TencnetOS-tiny硬件故障追踪功能的支持,此功能可以在 tos_config.h 中配置,如果加入的话,需要将功能中原有的 HardFault_Handler 屏蔽。

4.3 添加内核源码

内核源码 kernel 目录下包含 core 和 pm 两个目录,其中 core 目录下的代码为基础内核,pm 目录下的代码为低功耗组件。进行基础移植时无需添加 pm 目录下的代码,只需添加全部的基本内核源码(kernel/core 目录下),如下图所示:

4.4 添加cmsis_os源码

cmsis_os是TencentOS-tiny为兼容cmsis标准而适配的OS抽象层,可以简化用户将业务从其他RTOS迁移到TencentOS-tiny的工作量。

TencentOS-tiny 提供CMSIS-RTOS 1.0和2.0接口,当前使用的是1.0。

cmsis_os.c:在 osal\cmsis_os 目录中;

4.5 添加tos_config

#ifndef _TOS_CONFIG_H_
#define  _TOS_CONFIG_H_

#include "stm32f4xx.h"


#define TOS_CFG_TASK_PRIO_MAX           10u 	// 配置TencentOS tiny默认支持的最大优先级数量

#define TOS_CFG_ROUND_ROBIN_EN          0u		// 配置TencentOS tiny的内核是否开启时间片轮转

#define TOS_CFG_OBJECT_VERIFY_EN           1u	// 配置TencentOS tiny是否校验指针合法

#define TOS_CFG_TASK_DYNAMIC_CREATE_EN  1u		// TencentOS tiny 动态任务创建功能宏

#define TOS_CFG_EVENT_EN                1u		// TencentOS tiny 事件模块功能宏

#define TOS_CFG_MMBLK_EN                1u		//配置TencentOS tiny是否开启内存块管理模块

#define TOS_CFG_MMHEAP_EN               1u		//配置TencentOS tiny是否开启动态内存模块

#define TOS_CFG_MMHEAP_DEFAULT_POOL_EN  1u		// TencentOS tiny 默认动态内存池功能宏

#define TOS_CFG_MMHEAP_DEFAULT_POOL_SIZE        0x4000	// 配置TencentOS tiny默认动态内存池大小

#define TOS_CFG_MUTEX_EN                1u		// 配置TencentOS tiny是否开启互斥锁模块

#define TOS_CFG_MESSAGE_QUEUE_EN        1u		// 配置TencentOS tiny是否开启消息队列模块

#define TOS_CFG_MAIL_QUEUE_EN           1u		// 配置TencentOS tiny是否开启消息邮箱模块

#define TOS_CFG_PRIORITY_MESSAGE_QUEUE_EN	1u	// 配置TencentOS tiny是否开启优先级消息队列模块

#define TOS_CFG_PRIORITY_MAIL_QUEUE_EN	1u		// 配置TencentOS tiny是否开启优先级消息邮箱模块

#define TOS_CFG_TIMER_EN                1u		// 配置TencentOS tiny是否开启软件定时器模块

#define TOS_CFG_PWR_MGR_EN              0u		// 配置TencentOS tiny是否开启外设电源管理模块

#define TOS_CFG_TICKLESS_EN             0u		// 配置Tickless 低功耗模块开关

#define TOS_CFG_SEM_EN                  1u		// 配置TencentOS tiny是否开启信号量模块

#define TOS_CFG_TASK_STACK_DRAUGHT_DEPTH_DETACT_EN      1u	// 配置TencentOS tiny是否开启任务栈深度检测

#define TOS_CFG_FAULT_BACKTRACE_EN      0u		// 配置TencentOS tiny是否开启异常栈回溯功能

#define TOS_CFG_IDLE_TASK_STK_SIZE      128u	// 配置TencentOS tiny空闲任务栈大小

#define TOS_CFG_CPU_TICK_PER_SECOND     1000u	// 配置TencentOS tiny的tick频率

#define TOS_CFG_CPU_CLOCK               (SystemCoreClock)	// 配置TencentOS tiny CPU频率

#define TOS_CFG_TIMER_AS_PROC           1u		// 配置是否将TIMER配置成函数模式

#endif

4.7 添加头文件

 

5. 修改stm32f4xx_it.c代码

5.1 添加tos头文件

在 stm32f4xx_it.c 中添加 tos_k.h 头文件,用于调用API函数。

5.2 修改PendSV_Handler 中断函数

TencentOS-tiny内核中已经对pendSV异常进行了处理,在 PendSV_Handler 函数前添加 __weak 关键字(弱定义);

5.3 修改SysTick_handle中断函数

TencentOS-tiny内核需要Systick提供时钟节拍,在 SysTick_Handler 函数中添加 TencentOS tiny 的调度处理函数,如下图:

tos_knl_is_running() 函数判断内核是否正在运行。

os_tick_handler() 函数是系统用于更新时基用的。

6. 修改usart.c代码

6.1 printf函数重定向

在 usart.c 中添加 fputc 函数,用于重定义 putc 函数,可以是 printf 函数从串口1打印输出。

int fputc(int ch, FILE *f)//将 printf 函数重定向到串口1
{
  if (ch == '\n') 
  {
    HAL_UART_Transmit(&huart1, (void *)"\r", 1,30000);
  }
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
  return ch;
}

出现错误是因为缺 stdio.h 头文件,只需要在 main.h 文件中添加即可,如下图所示。

7. 修改mian.c代码

7.1 添加cmsis_os.h头文件

cmsis_os.h 头文件中包含TencentOS-tiny 相关头文件。

7.2 添加Task函数

// 定义任务栈大小和优先级参数等
#define TASK_STK_SIZE	1024
extern void OS_TaskEntry(void *arg);
osThreadDef(OS_TaskEntry, osPriorityNormal,1,TASK_STK_SIZE);

__weak void OS_TaskEntry(void *arg)	// 任务入口函数
{
	while (1)
	{
		printf("This is a demo task,please use your task enrty!\r\n");
		osDelay(1000);
	}
}

7.3 内核初始化,创建Task,开启调度

    osKernelInitialize();
    osThreadCreate(osThread(OS_TaskEntry), NULL);
    osKernelStart();

 


三、验证TencentOS-tiny移植结果

1. 点此按钮对工程进行编译。

2. 编译后,输出此信息表示编译成功。

3. 连接硬件并上电后,点击此按钮即可完成程序下载。

 

 

 

 

RTOS内功修炼记(八)——CMSIS RTOS API,内核通用API接口 1. CMSIS-RTOS API CMSIS-RTOS API是ARM公司为RTOS内核制定的一套通用接口协议,它提供了一套标准的API接口,可以移植到各种各样的RTOS上,使得上层的软件、中间件、库以及其他组件在不同的RTOS之上都可以正常工作。 这套API表现为两个文件:cmsis-os.h和cmsis-os.c,也就是说,不同的RTOS内核分别用自己的一套东西去适配.c文件中的接口,而用户只需要调用.h文件中给出的API编写应用。 本文会列举性的给出CMSIS-RTOS有哪些API和宏定义,并给出每 阅读详情

相关推荐

移植TencentOS-tiny内核调度器到裸机工程的方法

在裸机入口函数中,首先调用osInit函数初始化TencentOS-tiny内核,然后使用osTaskCreate函数创建任务,并指定任务函数、任务名、任务栈大小和参数等。在裸机工程中,我们可以利用TencentOS-tiny提供的功能和特性,实现任务间的调度和管理,增强嵌入式设备的实时性能和可靠性。在裸机工程中,需要编写一个裸机入口函数main,并在该函数中完成TencentOS-tiny内核的初始化和启动。根据裸机开发板的具体情况,修改TencentOS-tiny内核的配置文件,配置编译选项。

CyberSphinx的博客 196

在 STM32 中使用 tinyusb 协议栈

在 STM32 中使用 tinyusb 协议栈。

tyustli 3542

STM32标准库工程中移植TencentOS-tiny

一、移植前的准备 1. 引言 因为项目的原因需要将原有的标准库工程升级为基于TencentOS-tiny的RTOS工程,所以花费一点时间记录移植过程,提供一份向基于STM32标准库的老工程中移植TencentOS-tiny的思路。 2. 移植条件 移植 TencentOS-tiny 需要确保 Systick 可以正常工作: ① Systick用于向TencentOS-tiny提供时钟节拍支持,通常为1ms一次中断; ② Systick属于内核外设,在TencentOS-tiny中会自动配置,无需用户手动配置

Mculover666的博客(嵌入式) 1384

TencentOS tiny 移植到STM32F103教程

TencentOS tiny 移植到STM32F103教程

qq_38295600的博客 1248

从问卷到结论:手把手教你用SPSS 28完成一份完整的社科数据分析报告

本文详细介绍了如何使用SPSS 28完成社会科学研究中的数据分析报告,从问卷数据导入、清洗到描述性和推断性统计分析,再到结果呈现与报告撰写。通过实际案例演示,帮助研究者掌握SPSS 28的核心功能,提升数据分析效率与报告质量。

weixin_28717431的博客 245

机械臂控制的基础知识

在现代工业中,机械臂的自动化控制已经成为智能制造的重要一环。控制机械臂涉及多个学科,包括机械设计、运动学、控制理论和编程等。本文将从以下几个方面介绍机械臂控制的核心知识点:机械臂的构成、运动学分析、动力学建模、控制方法及编程实现。

qq_45728381的博客 5464

芯得EP.21丨基于极海APM32F4的TencentOS Tiny实时操作系统移植详解

本文详细记录了将TencentOS-tiny实时操作系统移植到极海APM32F407IGMINI开发板的过程。作者首先下载了APM32F4的SDK和TencentOS源码,然后通过修改工程配置、调整中断处理函数、编写任务示例等步骤完成移植。最终实现了两个任务交替运行,并通过串口输出和LED闪烁验证了移植成功。文章提供了完整的移植思路和具体实现方法,为开发者提供了有价值的参考。

Geehy极海半导体的博客 1278

双翌视觉系统配合机械手大视野定位案例(单目标带角度抓取)

一、定位原理概述 1.系统构架 视觉定位系统采用正向打光方式,光源在机械手上方,CCD从上往下拍摄,进行图像分析定位。相机将计算出的像素坐标转换为机械手的物理坐标,视觉软件与机械手进行网口通讯,将视野内物料的物理坐标发送给机械手,机械手抓取物料放在指定工位。 2.相机标定概述 系统采用宫格标定确定像素坐标和物理坐标一一对应关系,同时利用3点或者多点旋转标定求出旋转中心 系统采用宫格标定,自定义行列数和间距及旋转角度,通过机械手发送的当...

weixin_51554164的博客 2166

(3)TencentOS tiny移植到Stm32f103zet6(德飞莱)

我参照这个教程把TencentOS tiny 移植到keil的时候发现编译报错: TencentOS tiny 移植到STM32F103全教程(基于标准库) …\TencentOS\kernel\core\tos_mutex.c(105): error: #136: struct “k_mutex_st” has no field “knl_obj” knl_object_alloc_set_dynamic(&the_mutex->knl_obj); 首先,指针the_mutex定义在此:

qq_40259429的博客 605

双足肌肉骨骼机器人

Clone Alpha的技术突破标志着人类进入生物-机械融合的新纪元,但其影响远超技术范畴。从伦理框架重建(如拉马克进化算法中的知识传递机制)到经济模式革新(如UBI应对机器人失业潮),需全球协作制定前瞻性政策。若放任技术无序扩张,人类社会或将面临“能力断层”与“控制权丧失”的双重危机;反之,若以人类福祉为核心导向,仿生机器人亦可成为弥合残障歧视、提升整体文明层级的钥匙。当下选择,将决定人类究竟是技术的创造者,还是被重构的客体。

百态·数智思维 | 聚焦大数据、量化与未来AI 974

Android TV 遥控器全链路按键适配指南:从物理按键到应用响应

本文深入探讨了Android TV遥控器按键适配方案,涵盖红外和蓝牙遥控器的工作原理及完整适配流程。红外遥控部分详细介绍了从硬件调试、驱动适配到键值映射配置的方法,并提供了实用的调试命令。蓝牙遥控器部分解析了HID协议和报告描述符,给出内核层与Android层的适配代码示例。文章还介绍了游戏手柄、语音遥控器等特殊外设的适配技巧,并提供了系统级调试工具和内核级调试方法,为开发者提供了一套完整的Android TV输入设备适配解决方案。

学无止境 1252

(5)将TencentOS tiny移植到STM32F407ZGT6(探索者)上

1、首先准备好空白工程: 位于文件夹正点原子-探索者F4 资料盘(A盘)\4,程序源码\2,标准例程-库函数版本\实验0 Template工程模板(下载地址:stm32f407探索者开发板-正点原子资料),然后准备好TencentOS tiny的源码,位于TencentOS tiny。 2、打开工程,将源码的arch、kernel、cmsis和tos_config的.c文件和.h文件移植到工程中,具体步骤参考TencentOS-tiny 移植到STM32F407(MDK)中的步骤,如下: 里面的(6. 修

qq_40259429的博客 337

数据挖掘实战-基于情感分析+网络语义分析+LDA主题分析对大唐不夜城用户评论进行文本分析

本研究基于去哪儿网和携程网的1888条大唐不夜城游客评论数据,运用Python进行文本分析。通过情感分析发现游客评价以积极为主(占比约70%),中性占20%,消极占10%。采用ROSTCM6软件进行社会网络语义分析,识别不同情绪下的高频词汇。使用LDA主题模型将评论划分为3个主题(夜景、表演、美食),并分析主题强度随时间变化趋势。实验包含数据采集、预处理、情感分析、语义网络分析和LDA建模等完整流程,为景区管理优化提供数据支持。源代码涵盖爬虫、数据处理和可视化分析的全套实现。

m0_64336780的博客 1万+

Mculover666的博客文章导航(嵌入式宝藏站)(2021.06.17更新)

一、MCU系列 1. 开发环境 【Keil MDK】(一)Keil MDK 5.28 的下载、安装、破解【Keil MDK】(二)Keil MDK中芯片器件包的安装【Keil MDK】(三)Keil MDK更换Sublime Text Molokai主题 【Keil MDK】(四)Keil MDK的一些推荐功能(编码格式、自动保存、代码提示、动态语法检查、多核编译) 【STM32开发环境】Linux下开发stm32(一) | 使用gcc-arm-none-eabi工具链编译【STM32开发环境】Linu

qq_1283679500的博客 1427

【vsomeip3 教程】SOME/IP中间件去抖策略全解析

本文探讨了在SOME/IP中间件中实现Debounce(去抖动)机制的必要性和实现原理。文章首先分析了中间件层进行Debounce的四大动机:多订阅者共享收益、语义显式化、协议噪声屏蔽和入口处背压控制。接着详细阐述了Debounce的底层原理,包括变化检测机制(ignore和mask的应用)、时间门控策略(interval的两种时间基准)以及超时补发机制,并通过表格清晰展示了不同参数组合的效果和适用场景。最后,文章提出了工程落地的具体方法,包括策略选型、ignore/mask的设计方法论以及分层验证调试的实

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 221

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

开源项目介绍|TencentOS Tiny-腾讯物联网终端操作系统

2023腾讯犀牛鸟开源人才培养计划开源项目介绍扫码填写问卷报名,提交TencentOS Tiny项目申请书加入开发实践与导师一起成长这一夏天TencentOS Tiny 项目介绍腾讯面向物联网领域开发的实时操作系统,具有低功耗,低资源占用,模块化,安全可靠等特点,可有效提升物联网终端产品开发效率;提供精简的 RTOS 内核,内核组件可裁剪可配置,可快速移植到多种主流 MCU (如 STM32 全系...

腾讯开源 590

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

移植 TencentOS-tiny 实时操作系统(一)

闲暇之时,利用一点点时间移植一下TencentOS-tiny系统玩玩。 硬件(MCU):STM32L051C8T6 目前来说TencentOS-tiny比起LiteOS还有一些不足的地方(组件还没有LiteOS完善),但是它占用flash确实是小些,比起LiteOS。 直接进入话题,其实,我已在前一个月就移植好了,现在就是做个记录,而且目前来说,网上还没有哪个教程是基于M0内核的MCU作于讲...

qq_36075612的博客 3万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

STM32适配开源TINYUSB

TinyUSB是一个轻量级的、开源的、跨平台的USB协议栈!

Dreamer_young的博客 2046

开源项目介绍|TencentOS Tiny - 腾讯物联网操作系统

2022腾讯犀牛鸟开源人才培养计划开源项目介绍滑至文末报名参与开源人才培养计划提交 TencentOS Tiny 项目ProposalTencentOS Tiny 项目介绍腾讯面向物联网领域开发的实时操作系统,具有低功耗,低资源占用,模块化,安全可靠等特点,可有效提升物联网终端产品开发效率;提供精简的 RTOS 内核,内核组件可裁剪可配置,可快速移植到多种主流 MCU (...

腾讯开源 1502

与CentOS用户态完全兼容的TencentOS你用过没?

正文共:914字 16图,预估阅读时间:3 分钟CentOS已经在上个月月底(6月30号)停服(CentOS 7停服之后该怎么安装软件呢?),我们大概介绍了如何在停服之后安装软件以继续使用。今天,我无意间发现,腾讯云竟然针对CentOS发行了几个TencentOS Server系统,宣称与CentOS用户态完全兼容。系统基于Linux内核,由腾讯云自主研发设计,在腾讯内部操作系统里占比超99%,经...

衡水铁头哥的博客 1989

【TencentOS tiny】又有一个操作系统开源

新闻 今日,腾讯宣布将开源 自主研发的轻量级物联网实时操作系统TencentOS tiny。相比市场上其它系统,腾讯TencentOS tiny在资源占用、设备成本、功耗管理以及安全稳定等层面极具竞争力。该系统的开源可大幅降低物联网应用开发成本,提升开发效率,同时支持一键上云,对接云端海量资源。 正题 很荣幸,能亲眼见证TencentOS tiny的开源,也很荣幸能在一个多月前内测使用过它~ 不得...

杰杰的博客 4万+

STM32U575+tinyUSB+Keil

STM32U575+tinyUSB+Keil

ktmvt的博客 1500

STM32H5移植TinyUSB,实现高效的USB控制

基于stm32h5进行tinyusb移植,使用的tinyusb的目的是想快速的使用usb的相关的功能,同时可以兼容多个芯片平台

princexjg的博客 4270
上一篇: Android Studio -- 键盘快捷方式
下一篇: github响应时间过长,无法访问此网站[已解决]
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值