初学STM32 --- USMART

目录

USMART简介

USMART主要特点:

USMART原理

 USMART组成:

USMART 的实现流程简单概括

USMART扫描函数:

USMART系统命令

USMART移植


USMART简介

USMART是一个串口调试组件,可以大大提高代码调试效率!

USMART主要特点:

1可以调用绝大部分用户直接编写的函数

2,占用资源少(最小:4KB FLASH, 72B SRAM

3,支持参数类型多(整数(10/16)、字符串、函数指针等)

4,支持函数返回值显示且可对格式进行设置

5,支持函数执行时间计算

USMART原理

通过对比用户输入字符串和本地函数名,用函数指针实现调用不同的函数。

 USMART组成:

修改:usmart_port.c/.h,即可完成移植

修改:usmart_config.c,即可添加自己想要调用的函数

USMART 的实现流程简单概括

 第一步,添加需要调用的函数(在 usmart_config.c 里面的 usmart_nametab 数组里面添加)

第二步,初始化串口;

第三步,初始化 USMART(通过usmart_init 函数实现);

第四步,轮询 usmart_scan 函数,处理串口数据。

USMART扫描函数:

void usmart_scan(void);

扫描函数,解析用户输入字符串数据,进而实现函数调用和组件各个控制功能

usmart_scan调用以下获取用户输入字符串数据函数:

USMART系统命令

USMART移植

1、获取USMART组件:找到USMART的全部组件,从正点原子的USMART例程获得

2、添加到工程:添加全部组件到工程, 4个文件,设置好路径关联

3、适配硬件:修改调试串口和定时器,以适配自己的硬件

4、添加执行函数:添加自己需要的执行函数,在usmart_config.c中添加修改

5、通过串口交互:烧录移植好的USMART组件,可以通过串口反复测试目标函数。

注意:USMART默认使用了串口1和定时器4。

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

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

相关文章

SQL编程语言

第一章 1. 数据库是长期储存在计算机内,由专门的数据管理软件(数据库管理系统),进行统一组织和管理控制的大量数据的集合。 2.数据库的基本特点不包括可以快速检索。 3. 数据管理技术的发展经历了:人工管理阶段、文件系统阶段、数据库系统阶…

LeetCode:165. 比较版本号(双指针 Java)

目录 165. 比较版本号 题目描述: 实现代码与解析: 双指针 原理思路: 165. 比较版本号 题目描述: 给你两个 版本号字符串 version1 和 version2 ,请你比较它们。版本号由被点 . 分开的修订号组成。修订号的值 是它…

【Spring】Mybatis缓存+ehcache

文章目录 基础缓存基于Spring的Mybatis缓存ehcacheCacheableCachePutCacheEvictCaching 基础缓存 一级缓存 SqlSession 级别的缓存,它是默认开启的。每当执行一个查询操作时,MyBatis 会首先从一级缓存中查找结果,如果找到了相应的数据&…

【STM32+QT项目】基于STM32与QT的智慧粮仓环境监测与管理系统设计(完整工程资料源码)

视频演示: 基于STM32与QT的智慧粮仓环境监测与管理系统设计 目录: 目录 视频演示: 目录: 前言:

Backend - C# 操作数据库 DB(ADO.NET、LINQ to SQL、EF)

目录 一、ADO.NET(传统) 二、LINQ to SQL(已过时) 三、EF(推荐) 常见的操作数据库的方法:有三种,分别是 ADO.NET、LINQ to SQL、EF 一、ADO.NET(传统) ADO.NE…

机器学习周报-ModernTCN文献阅读

文章目录 摘要Abstract 0 提升有效感受野(ERF)1 相关知识1.1 标准卷积1.2 深度分离卷积(Depthwise Convolution,DWConv)1.3 逐点卷积(Pointwise Convolution,PWConv)1.4 组卷积(Grou…

《OpenCV计算机视觉实战项目》——银行卡号识别

文章目录 项目任务及要求项目实现思路项目实现及代码导入模块设置参数对模版图像中数字的定位处理银行卡的图像处理读取输入图像,预处理找到数字边框使用模版匹配,计算匹配得分 画出并打印结果 项目任务及要求 任务书: 要为某家银行设计一套…

Yolo11改进:注意力改进|Block改进|ESSAformer,用于高光谱图像超分辨率的高效Transformer|即插即用

摘要 一、论文介绍 高光谱图像超分辨率的重要性:高光谱成像技术通过密集采样光谱特征,为材料区分提供丰富的光谱和空间结构信息,广泛应用于各领域。高光谱图像超分辨率(HSI-SR)旨在从低分辨率HSI生成高分辨率HSI。传统方法的局限性:传统方法依赖手工制作的先验,如低秩近…

概要性了解Linux的总线设备驱动

引言 假如我们的板子上有很多LED,有时候需要操作这个LED,有时候需要操作另一个LED,我们希望代码可以清晰地组织在一起,方便扩展,同时自动为这些具体的设备生成对应的设备文件以供用户空间使用。 在Linux中&#xff0…

Swift语言的正则表达式

Swift语言的正则表达式 正则表达式是一种用于匹配字符串的强大工具,它可以帮助开发者在文本处理中高效地搜索和操作字符串。在Swift语言中,正则表达式的支持是通过Foundation框架提供的。本文将全面介绍Swift中的正则表达式,从基础知识到进阶…

【LeetCode: 560. 和为 K 的子数组 + 前缀和 + 哈希表】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

Tableau数据可视化与仪表盘搭建-可视化原则及BI仪表盘搭建

目录 可视化原则 BI仪表盘搭建 仪表盘搭建原则 明确仪表盘主题 仪表盘主题拆解 开发设计工作表 经营情况总览:突出显示的文字 经营数据详情:表格 每日营收数据:多轴折线图 每日流量数据:双轴组合图 新老客占比&#xf…

vue2日历组件

这个代码可以直接运行&#xff0c;未防止有组件库没安装&#xff0c;将组件库的代码&#xff0c;转成文字了 vue页面 <template><div class"about"><div style"height: 450px; width: 400px"><div style"height: 100%; overflo…

交响曲-24-3-单细胞CNV分析及聚类

CNV概述 小于1kb是常见的插入、移位、缺失等的变异 人体内包含<10% 的正常CNV&#xff0c;我们的染色体数是两倍体&#xff0c;正常情况下&#xff0c;只有一条染色体表达&#xff0c;另一条沉默&#xff0c;当表达的那条染色体发生CNV之后&#xff0c;表达数量就会成倍增加…

UDP -- 简易聊天室

目录 gitee&#xff08;内有详细代码&#xff09; 图解 MessageRoute.hpp UdpClient.hpp UdpServer.hpp Main.hpp 运行结果&#xff08;本地通信&#xff09; 如何分开对话显示&#xff1f; gitee&#xff08;内有详细代码&#xff09; chat_room zihuixie/Linux_Lear…

python对redis的增删查改

python对redis的增删查改 安装 redis-py 库连接 Redis 服务器增1. 字符串&#xff08;String&#xff09;2. 列表&#xff08;List&#xff09;3. 哈希&#xff08;Hash&#xff09;4. 集合&#xff08;Set&#xff09;5. 有序集合&#xff08;Sorted Set&#xff09; 删1. 删除…

电影动画shader解析与实现

着色器代码解析 大家好&#xff01;我是 [数擎AI]&#xff0c;一位热爱探索新技术的前端开发者&#xff0c;在这里分享前端和Web3D、AI技术的干货与实战经验。如果你对技术有热情&#xff0c;欢迎关注我的文章&#xff0c;我们一起成长、进步&#xff01; 开发领域&#xff1a;…

代码随想录算法【Day11】

150. 逆波兰表达式求值 class Solution { public:int evalRPN(vector<string>& tokens) {// 力扣修改了后台测试数据&#xff0c;需要用longlongstack<long long> st; for (int i 0; i < tokens.size(); i) {if (tokens[i] "" || tokens[i] &…

让Qt 具有多选文件夹和记忆上一次打开位置的文件对话框

最近要做一个可以多选文件夹的功能&#xff0c;在网上查阅了多个资料&#xff0c;发现github有一段代码可以实现该功能&#xff0c;于是将其收入进行改造。另外qt自带的 getExistingDirectory 和 getOpenFileNames 不具有记忆上一次打开的文件夹位置。要实现多选文件夹和记忆上…

【杂谈】-50+个生成式人工智能面试问题(一)

50个生成式人工智能面试问题 文章目录 50个生成式人工智能面试问题1、生成式人工智能面试问题与神经网络相关Q1. 什么是Transformers&#xff1f;Q2. 什么是注意力机制&#xff1f;有哪些类型的注意力机制&#xff1f;Q3. 为什么Transformer比RNN架构更好&#xff1f;Q4. Trans…