测试stm32串口发送数据在不同条件下的效率

news/2025/2/27 7:36:26/文章来源:https://www.cnblogs.com/chaoj/p/18564299

一、测试不同波特率

测试代码:

    while(1){LED1_ON();bsp_uart_Printf("这是一个测试程序%d\r\n", num);LED1_OFF();bsp_uart_Printf("这是一个测试程序%d\r\n", num);num ++;}void bsp_uart_Printf(char *format, ...)
{va_list arg;va_start(arg, format);vsprintf(String, format, arg);va_end(arg);bsp_uart_SendString(String);
}

分别测试波特率为9600,115200、256000下的效率:

1. 9600:

逻辑分析仪抓到的数据如下:

2. 115200

逻辑分析仪抓到的数据如下:

3. 256000

逻辑分析仪抓到的数据如下:

二、在使用DMA的条件测试上述波特率

    while(1){LED1_ON();bsp_uart_Printf_DMA("这是一个测试程序%d\r\n", num);LED1_OFF();bsp_uart_Printf_DMA("这是一个测试程序%d\r\n", num);num ++;}void bsp_uart_Printf_DMA(char *format, ...)
{while(!u8UartDmaFlag);u8UartDmaFlag = 0;DMA_ClearFlag(DMA1_FLAG_TC4);						//清除工作完成标志位va_list arg;va_start(arg, format);vsprintf(String, format, arg);va_end(arg);DMA_SetCurrDataCounter(DMA1_Channel4, strlen(String));	//写入传输计数器,指定将要转运的次数DMA_Cmd(DMA1_Channel4, ENABLE);						//DMA使能,开始工作
}
void DMA1_Channel4_IRQHandler(void)
{u8UartDmaFlag = 1;DMA_ClearITPendingBit(DMA1_IT_TC4);DMA_Cmd(DMA1_Channel4, DISABLE);					//DMA失能,在写入传输计数器之前,需要DMA暂停工作
}
1. 9600

逻辑分析仪抓到的数据如下:

2. 115200

逻辑分析仪抓到的数据如下:

2. 256000

逻辑分析仪抓到的数据如下:

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

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

相关文章

C++提高编程-STL

STL初识容器算法迭代器初识 vector存放内置数据类型 #include<vector> #include<algorithm>void myPrint(int x) {cout << x << ; }void test01() {//创建vector容器vector<int>v;//向容器中插入数据v.push_back(10);v.push_back(20);v.push_ba…

MMORPG技能管线设计经验总结

导语: 表现丰富、机制多变的技能作为MMORPG游戏战斗体验的核心组成部分,是吸引玩家的一大亮点,本文总结了在MMORPG技能系统设计上的一些经验,供大家参考。1、设计思路早期的MMORPG手游中,技能的表现相对简单,因此技能流程被分为几个固定的阶段(如准备阶段、攻击阶段、受…

Sickos1.1 详细靶机思路 实操笔记

Sickos1.1 详细靶机思路 实操笔记 免责声明 本博客提供的所有信息仅供学习和研究目的,旨在提高读者的网络安全意识和技术能力。请在合法合规的前提下使用本文中提供的任何技术、方法或工具。如果您选择使用本博客中的任何信息进行非法活动,您将独自承担全部法律责任。本博客…

cornerstone中raft_server源码解析

1.概述 cornerstone中核心即为raft_server的实现。 在raft里面有follower,leader,candidate三种角色,且角色身份还可以相互切换。 写三个类follower,leader,candidate显得没必要,因为三个类可以共享许多成员变量,如term,log_store等等。因此在cornerstone中抽象出raft_…

封装、权限修饰符、封装的案例

1.面向对象的三大特征其中继承和多态放在后面讲,今天只聊封装 . 2.封装的介绍举例如果要我们处理一堆学生的数据,我们可以直接设计一个类,将我们需要处理的数据封装到类当中变为成员变量,然后我们直接创建两个对象,再将数据封装到对象中即可 . 3.封装的好处 1.便于我们维护…

【Atcoder训练记录】AtCoder Beginner Contest 381

训练情况赛后反思 简单题A题做红温了,怒吃 6 罚时,C题双指针其实差不多想出来了,但是对于判断字符串合法其实可以只判断两个端点,不需要全部遍历,中途还想了二分做法(?),然而写到最后发现并没有二分单调性。 A题 记得判断字符串的长度必须是奇数,\(1 \sim \frac{n+1}…

putty中设置白色背景、黑色字体

001、 002、 003、 前景色全部改为0 004、 背景色全部改为255 。

【牛客训练记录】牛客小白月赛105

训练情况赛后反思 看十佳歌手去了,比较晚回来,只开了A题,B题不看数据范围直接一眼丁真直接WA了一发 A题 两个数相乘进行比较,再判断即可。 #include <bits/stdc++.h> #define int long long #define endl \nusing namespace std;void solve(){int a1,b1,a2,b2; cin&g…

Win 11史诗升级,终于能完美兼容安卓生态

曾几何时,Windows与安卓设备之间的壁垒让人头疼不已。如今,微软再一次引领变革!Windows 11迎来了“史诗级”升级,安卓生态的完美兼容终于成为现实。这次升级将如何改变我们的使用体验? Win 11 的安卓兼容性升级具体实现了哪些突破?它对用户工作和娱乐方式有怎样的深远影响…

MPU6050 原理及驱动

MPU6050 姿态传感器原理分析MPU6050 是一款由 InvenSense 设计的低成本紧凑型 6 轴姿态传感器。该传感器可提供三轴角速度、三轴加速度和芯片温度数据。主设备可通过 I2C 与之进行通讯,从而获取并解算测量数据。MPU6050 技术参数3 轴陀螺仪(16位):量程范围为 250、500、100…

1.11--01:查找最接近的元素

http://noi.openjudge.cn/ch0111/01/查找最接近的元素 题目传送门 思路 可以看到数据范围,如果我们两层循环mn,10000*100000,时间复杂度绝对爆炸 所以我们就需要用到二分查找 什么是二分呢? 通俗的讲,就是每次砍半 假设我们在10个数据中查找接近7的元素 \(1 3 4 8 10 12 3…

一行代码搞定Windows/Office,史上最简单操作

曾几何时,安装和激活 Windows 或 Office 是让小白头疼的大工程,繁琐的操作让人心力交瘁。而今天,我们只需要一行代码就能轻松搞定!是不是听起来很不可思议? 一行代码究竟如何实现 Windows 和 Office 的快速激活?它是否既高效又安全?如今,无论是学习还是办公,都离不开 …