当前位置: 首页 > news >正文

STM32使用rand()生成随机数并显示波形

一、随机数生成

1、加入头文件:#include "stdlib.h"

2、定义一个用作生成随机数种子的变量并加入到滴答定时器中不断自增:uint32_t run_times = 0;

3、设置种子:srand(run_times);//每次生成随机数前调用一次为佳

4、生成一个随机数:uint16_t date = rand()%(b-a+1)+a;//生成a~b区间的随机数

注:如果要在同一时间频繁生成随机数,最好错开1ms的时间

二、波形显示(采用正点原子4.3寸屏,480*800)

1、设置储存波形数据的数组指针(我这里采用动态分配内存):uint16_t *wave_date = 0;

2、给储存波形数据的数组指针分配内存:wave_date = (uint16_t *)mymalloc(SRAMEX, 720*sizeof(uint16_t));//屏幕宽800px,但只有前720px用来显示波形

3、给波形数组赋值:

for(x=0;x<720;x++)
{srand(run_times);wave_date[x] = 40+ rand()%(400-0+0)+0;	//产生 0~400之间随机数,前面+40是为了让波形整体下移HAL_Delay(1);
}

4、波形显示

	while(1){/*显示网格线*/for(x=0;x<760;x+=40)//竖线{lcd_draw_line(x,40,x,440,GRAY);}	for(y=40;y<480;y+=40)//横线{lcd_draw_line(0,y,720,y,GRAY);}	for(x=0;x<720;x++)//竖线{if(x==0){lcd_draw_point(0,wave_date[0],RED);}else{lcd_draw_line(x-1, wave_date[x-1], x, wave_date[x], RED);}}for(x=0;x<(720-1);x++) wave_date[x] = wave_date[x+1];//保留前719个点的值srand(run_times);wave_date[719] = 40+ rand()%(400-0+0)+0;	//随机生成第720个点的值HAL_Delay(100);lcd_fill(0,40,720,440,g_back_color);	//清空波形显示区域}

效果如下图:

问题:频繁刷新导致看起来一直在闪

相关文章:

STM32使用rand()生成随机数并显示波形

一、随机数生成 1、加入头文件&#xff1a;#include "stdlib.h" 2、定义一个用作生成随机数种子的变量并加入到滴答定时器中不断自增&#xff1a;uint32_t run_times 0; 3、设置种子&#xff1a;srand(run_times);//每次生成随机数前调用一次为佳 4、生成一个随…...

继承的了解与学习

目录 1. 继承的概念及定义 1.1 继承的概念 1.2继承的名称 1.3继承方式 1.4继承类模板 2.基类和派生类之间的转化 3.继承中的作用域 4.派生类的默认成员函数 5.继承与友元 6.继承与静态函数 7.多继承与其菱形继承问题 8.虚继承 9.继承和组合 1. 继承的概念及定义 …...

如何精通C++编程?

如果从学生时代算起的话&#xff0c;我学习和使用C已经差不多快十年了&#xff0c;仍然不敢说自己已经掌握了C的全部特性&#xff0c;但或许能够给出一些有用的建议吧。 我学习C全靠自学&#xff0c;花费了不少的功夫&#xff0c;在这里分享一些学习心得&#xff0c;希望对大家…...

【科研绘图系列】R语言绘制多个气泡图组合图(bubble plot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理画图函数画图系统信息介绍 【科研绘图系列】R语言绘制多个气泡图组合图(bubble plot) 加载R包 library(dplyr) library(tidyr) library(ggp…...

利用大模型实现地理领域文档中英文自动化翻译

一、 背景描述 在跨国性企业日常经营过程中&#xff0c;经常会遇到专业性较强的文档翻译的需求&#xff0c;例如法律文书、商务合同、技术文档等&#xff1b;以往遇到此类场景&#xff0c;企业内部往往需要指派专人投入数小时甚至数天来整理和翻译&#xff0c;效率低下&#x…...

Oracle 19c部署之手工建库(四)

#Oracle #19c #手工建库 手工创建Oracle数据库&#xff08;也称为手工建库&#xff09;是指在已经安装了Oracle数据库软件的基础上&#xff0c;通过手动执行一系列命令和步骤来创建一个新的数据库实例。这种方法与使用Database Configuration Assistant (DBCA)等工具自动创建数…...

Leetcode 2158. 每天绘制新区域的数量【Plus题】

1.题目基本信息 1.1.题目描述 有一幅细长的画&#xff0c;可以用数轴来表示。 给你一个长度为 n 、下标从 0 开始的二维整数数组 paint &#xff0c;其中 paint[i] [starti, endi] 表示在第 i 天你需要绘制 starti 和 endi 之间的区域。 多次绘制同一区域会导致不均匀&…...

使用最新threejs复刻经典贪吃蛇游戏的3D版,附完整源码

基类Entity 建立基类Entity&#xff0c;实现投影能力、动画入场效果&#xff08;从小变大的弹性动画&#xff09;、计算自己在地图格位置的方法。 // 导入gsap动画库&#xff08;用于创建补间动画&#xff09; import gsap from gsap// 定义Entity基类 export default class …...

Google优化搜索体验:全新动态摘要功能(Beta)为欧洲用户带来更丰富的结果

Google持续推动搜索体验的创新&#xff0c;最新推出的动态摘要&#xff08;Dynamic Snippets&#xff09;功能&#xff08;Beta版&#xff09;为欧洲经济区&#xff08;EEA&#xff09;的用户和企业带来了全新的交互方式。2025年4月&#xff0c;Google更新了动态摘要的文档&…...

[苍穹外卖 | 项目日记] 第三天

前言 实现了新增菜品接口实现了菜品分页查询接口实现了删除菜品接口实现了根据id查询菜品接口实现了修改菜品接口 今日收获&#xff1a; 今日的这几个接口其实和之前写的对员工的操作是一样的&#xff0c;都是一整套Curd操作&#xff0c;所以今天在技术层面上并没有…...

【Python爬虫基础篇】--2.模块解析

目录 1.urllib库 1.1.request模块 1.1.1、urllib.request.urlopen() 函数 1.1.2.urllib.request.urlretrieve() 函数 1.2. error模块 1.3. parse 模块 2. BeautifulSoup4库 2.1.对象种类 2.2.对象属性 2.2.1.子节点 2.2.2.父节点 2.2.3.兄弟节点 2.2.4.回退和前进 …...

LabVIEW技巧——获取文件版本信息

获取可执行文件&#xff08;exe&#xff09;版本信息的几种方法 方法1. LabVIEW自带函数 labview自带了获取文件版本号的VI&#xff0c;但是没有开放到程序框图的函数选板中&#xff0c;在该目录下可以找到&#xff1a;...\LabVIEW 20xx\vi.lib\Platform\fileVersionInfo.llb…...

【软件工程】用飞书画各种图(流程图,架构图···)

笔者在做服务外包大赛的时候被文档内容的编写反复折磨&#xff0c;网上的工程图绘画工具要么是展示效果不佳&#xff0c;要么要收大几百的VIP费&#xff0c;最后发现飞书竟然可以直接绘画并插入示意图。 一、为什么选择飞书文档画流程图&#xff1f; 完全免费&#xff0c;无广…...

RFID图书管理系统如何重构数字化仓储管理新生态

引言 在图书馆与出版行业数字化转型进程中&#xff0c;RFID图书管理系统正打破传统人工管理的效率瓶颈&#xff0c;通过与数字化仓储管理系统的深度融合&#xff0c;实现从图书采购、入库到借阅的全链路智能化。本文结合RFID固定资产管理软件的应用逻辑&#xff0c;解析这一技…...

如何校验一个字符串是否是可以正确序列化的JSON字符串呢?

方法1&#xff1a;先给一个比较暴力的方法 try {JSONObject o new JSONObject(yourString); } catch (JSONException e) {LOGGER.error("No valid json"); } 方法2&#xff1a; Object json new cn.hutool.json.JSONTokener("[{\"name\":\"t…...

操作系统-PV

&#x1f9e0; 背景&#xff1a;为什么会有 PV&#xff1f; 类比&#xff1a;内存&#xff08;生产者&#xff09; 和 CPU&#xff08;消费者&#xff09; 内存 / IO / 磁盘 / 网络下载 → 不断“生产数据” 例如&#xff1a;读取文件、下载视频、从数据库加载信息 CPU → 负…...

工厂方法模式详解及c++代码实现(以自动驾驶感知模块中的应用为例)

模式定义 工厂方法模式&#xff08;Factory Method Pattern&#xff09;是一种创建型设计模式&#xff0c;通过定义抽象工厂接口将对象创建过程延迟到子类实现&#xff0c;实现对象创建与使用的解耦。该模式特别适合需要动态扩展产品类型的场景。 自动驾驶感知场景分析 自动驾…...

Jsp技术入门指南【五】详细讲解jsp结构页面

Jsp技术入门指南【五】详细讲解jsp结构页面 前言一、JSP页面的结构二、JSP页面的部件1. 指令&#xff08;核心控制部件&#xff09;2. 动作&#xff08;页面交互部件&#xff0c;了解即可&#xff09;3. 脚本&#xff08;Java逻辑嵌入部件&#xff09; 三、JSP指令详解1.1 JSP指…...

游戏APP如何抵御DDoS攻击与黑客勒索?实战防护全攻略

一、游戏行业安全挑战与攻击危害 游戏APP因高实时性、高并发及虚拟资产交易特性&#xff0c;成为DDoS攻击和勒索的重灾区&#xff0c;典型威胁包括&#xff1a; DDoS攻击瘫痪服务&#xff1a; UDP Flood&#xff1a;针对游戏服务器端口&#xff08;如UDP 7777&#xff09;发起…...

Mac 选择下载安装工具 x86 还是 arm64 ?

要确定你的 Mac 电脑应该选择下载安装工具的 x86 还是 arm64 版本&#xff0c;关键是判断你的 Mac 使用的是 Intel 处理器&#xff08;x86 架构&#xff09;还是 Apple Silicon&#xff08;如 M1、M2 等&#xff0c;arm64 架构&#xff09;。具体方法如下&#xff1a; 方法 1&…...

string函数的应用

字符串查找 find 方法 实例 string s "Hello World,C is awesome!";//查找子串 size_t pos1 s.find("World"); //pos16 size_t pos2 s.find("Python"); //pos2string::npos//查找字符 size_tpos3s.find(c); //pos313//从指定位置开始查找 size…...

使用Trae CN分析项目架构

架构分析后的截图 A区是打开的项目、B区是源码区、C区是AI给出当前项目的架构分析结果。 如何用 Trae CN 快速学习 STM32 嵌入式项目架构 在嵌入式开发领域&#xff0c;快速理解现有项目的架构是一项关键技能。Trae CN 作为一款强大的分析工具&#xff0c;能帮助开发者高效剖…...

每日一题(小白)暴力娱乐篇33

由题意可知我们今天要解决的问题是在1~2025中去找合适的数字&#xff0c;这里要找出一些特殊的数字&#xff0c;这些数字要满足以下条件&#xff0c;是三的倍数&#xff0c;是8的倍数&#xff0c;是38的倍数&#xff0c;老板就给要多给一个红包&#xff0c;我们循环然后相应条件…...

MyBatis框架

前言: MyBatis框架相比JDBC来说大大提升了我们写代码的效率&#xff0c;但是对初学者来说框架还是有点难以理解&#xff0c;所以本篇博客会十分详细的讲解MyBatis框架 目录 一.MyBatis概述 1.什么是映射? 2.什么是XML&#xff1f; 二.MyBatis框架搭建 1.创建一张表和表对…...

基于SpringBoot的新闻小程序开发与设计

概述 在信息爆炸的时代&#xff0c;高效获取新闻资讯成为现代人的刚需。幽络源平台今日分享一款基于SpringBoot框架开发的微信小程序新闻资讯系统&#xff0c;该系统采用前后端分离架构&#xff0c;实现了新闻分类管理、个性化推荐、用户收藏等功能&#xff0c;为新闻传播提供…...

IE之路专题12.BGP专题

BGP协议有哪些特点 BGP时边界网关协议(EGP),是一种用在自治系统之间传递路由信息的路由协议; 提供了丰富的路由属性以及强大的路由过滤和路由策略,实现灵活选路和路由控制; 策略方式更改属性或根据更新信息中属性实现过滤和策略 BGP是工作在传输层TCP之上的,使用TCP的端口号…...

文件包含(详解)

文件包含漏洞是一种常见的Web安全漏洞&#xff0c;其核心在于应用程序未对用户控制的文件路径或文件名进行严格过滤&#xff0c;导致攻击者能够包含并执行任意文件&#xff08;包括本地或远程恶意文件&#xff09;。 1. 文件包含原理 动态文件包含机制 开发者使用动态包含函数…...

智慧养老照护实训室:推动养老服务数字化转型实践

在人口老龄化加速与数字化浪潮席卷的当下&#xff0c;传统养老服务模式在效率、精准度及个性化服务上的局限日益明显。智慧养老成为行业转型的必然方向&#xff0c;但专业人才短缺与技术应用落地困难制约着发展。智慧养老照护实训室通过整合虚拟仿真等前沿技术&#xff0c;构建…...

NOIP2015提高组.信息传递

目录 题目算法标签: 并查集, T a r j a n Tarjan Tarjan算法, s c c scc scc强连通分量思路 T a r j a n Tarjan Tarjan算法求解代码 题目 517. 信息传递 算法标签: 并查集, T a r j a n Tarjan Tarjan算法, s c c scc scc强连通分量 思路 使用强连通分量算法求环上点…...

Wireshark 搜索组合速查表

文章目录 Wirshark使用记录基本语法规则搜索条件符号速查表捕获过滤器组合指令速查表筛选过滤器组合命令速查表Wireshark Frame 协议字段解析 Wirshark使用记录 官网地址&#xff1a;https://www.wireshark.org/ 基本语法规则 字段描述示例说明type用于指定数据包的类型&…...

AI当前状态:有哪些新技术

一、到目前为址AI领域出现的新技术 到目前为止&#xff0c;AI领域涌现了许多令人兴奋的新技术。以下是一些关键的进展&#xff0c;涵盖了从基础模型到实际应用的多个方面&#xff1a; 1. 更强大的大型语言模型 (LLMs): 性能提升: 新一代LLM&#xff0c;例如OpenAI的GPT-4o和…...

我的gittee仓库

日常代码: 日常代码提交https://gitee.com/xinxin-pingping/daily-code 有需要的宝子们可自行读取。...

RT-Thread开发文档合集

瑞萨VisionBoard开发实践指南 RT-Thread 文档中心 RT-Thread-【RA8D1-Vision Board】 RA8D1 Vision Board上的USB实践RT-Thread问答社区 - RT-Thread 【开发板】环境篇&#xff1a;05烧录工具介绍_哔哩哔哩_bilibili 【RA8D1-Vision Board】基于OpenMV 实现图像分类_哔哩哔哩_…...

SPWM-H桥逆变器工作原理

SPWM-H桥逆变器&#xff08;Sinusoidal Pulse Width Modulation H-Bridge Inverter&#xff09;是一种基于正弦脉宽调制&#xff08;SPWM&#xff09;技术的电力电子装置&#xff0c;用于将直流&#xff08;DC&#xff09;转换为交流&#xff08;AC&#xff09;。它广泛应用于光…...

【数据结构_10】二叉树(2)

一、根据树的遍历结果还原树 紧接着&#xff08;1&#xff09;&#xff0c;我们继续来讨论&#xff1a;如果给了树的遍历结果&#xff0c;我们能否把这个树给还原出来呢&#xff1f; 如果只给一种遍历结果&#xff0c;那么我们无法对树进行还原。 只有给了我们先序中序&…...

day1-小白学习JAVA(mac版)---(jdk安装和环境变量配置)

JDK安装和环境变量配置 我的电脑系统一、下载JDK1、oracle官网下载适合的JDK安装包&#xff0c;选择Mac OS对应的版本。 二、安装三、配置环境变量1、终端输入/usr/libexec/java_home -V查询所在的路径&#xff0c;复制备用2、输入ls -a3、检查文件目录中是否有.bash_profile文…...

Muduo网络库实现 [十六] - HttpServer模块

设计思路 本模块就是设计一个HttpServer模块&#xff0c;提供便携的搭建http协议的服务器的方法。那么这个模块需要如何设计呢&#xff1f; 这还需要从Http请求说起。 首先从http请求的请求行开始分析&#xff0c;请求行里面有个方法。分为静态资源请求和功能性请求的。 静态…...

工业触摸显示器助力智慧工业实验室发展

工业触摸显示器作为智慧工业实验室的核心人机交互设备&#xff0c;凭借其卓越的性能和灵活性&#xff0c;为实验室的智能化、自动化发展提供了强有力的支持。以下从多个方面阐述工业触摸显示器如何助力智慧工业实验室的发展&#xff1a; 一、提升操作便捷性与效率 直观操作&a…...

k8s介绍与实践

第一节 理论 基础介绍&#xff0c;部署实践&#xff0c;操作实践&#xff0c;点击这里学习 第二节 dashboard操作 查看安装的dashboard服务信息 kubectl get pod,svc -n kubernetes-dashboard 网页登录地址&#xff1a;https://server_ip:30976/#/login 创建token kube…...

ATEngin开发记录_5_C++日志打印引发的崩溃?一次虚函数调用引发的内存错误排查记录

该系列只做记录 不做教程 所以文章简洁直接 会列出碰到的问题和解决方案 只适合C萌新 在使用 C 进行事件系统开发时&#xff0c;我遇到了一次由于调用虚函数 GetName() 输出日志而引发的崩溃问题。通过逐步排查、使用防御性编程和类型检查&#xff0c;最终定位到了隐藏的生命…...

Yocto项目实战教程 · 第4章:4.2小节-菜谱

&#x1f50d; B站相应的视频教程&#xff1a; &#x1f4cc; Yocto项目实战教程-第4章-4.2小节-菜谱 记得三连&#xff0c;标为原始粉丝。 在 Yocto 项目中&#xff0c;**菜谱&#xff08;Recipe&#xff09;**承载了包的配置信息、源码获取方式、编译与安装步骤&#xff0c;是…...

7.Rust+Axum:打造高效 RESTful API 的最佳实践

摘要 深入探讨 RustAxum 开发 RESTful API 的关键要点&#xff0c;涵盖资源路由设计、HATEOAS 实现、参数处理及 DTO 序列化与 JSON 处理案例。 一、引言 在现代 Web 开发中&#xff0c;RESTful API 是构建分布式系统的重要组成部分。Rust 作为一种高性能、安全的系统编程语…...

CAN总线嵌入式开发实战:从入门到精通

CAN总线嵌入式开发实战&#xff1a;从入门到精通 一、CAN总线基础概念 CAN(Controller Area Network)是一种广泛应用于汽车电子和工业控制领域的串行通信协议&#xff0c;由Bosch公司于1986年开发。它具有以下核心特点&#xff1a; 多主架构&#xff1a;所有节点地位平等&am…...

从头学 | 目标函数、梯度下降相关知识笔记(一)

很多基本的概念最近忘的有点多&#xff0c;简单回顾一些 文章目录 1 目标函数、梯度下降1.1 回归模型中的目标函数1.1.1 回归任务目标函数(1) 均方误差&#xff08;MSE&#xff09;(2) Huber损失 1.1.2 分类任务目标函数(1) 交叉熵损失&#xff08;Cross-Entropy&#xff09;(2…...

欣佰特携数十款机器人相关前沿产品,亮相第二届人形机器人和具身智能行业盛会

2025年4月15日至16日&#xff0c;备受关注的第二届中国人形机器人与具身智能产业大会已在北京成功举行。作为国内前沿科技及产品服务领域的重要参与者&#xff0c;欣佰特科技携众多前沿产品精彩亮相&#xff0c;全方位展示了其在人形机器人与具身智能领域的创新产品。 在本次大…...

QT常见显示类控件及其属性

Label QLabel可用用来显示文本和图片 核心属性如下 文本格式---textFormat 例&#xff1a; 在ui界面创建3个label&#xff0c;分别用不同的显示格式 在构造函数进行文本格式和文内容设置 此时运行后三种显示格式无区别 可以给富文本加标签 如<B>表示加粗 如果将<…...

基于领域知识的A型主动脉夹层综合分割及面向临床的评估|文献速递-深度学习医疗AI最新文献

Title 题目 Domain knowledge based comprehensive segmentation of Type-A aortic dissection with clinically-oriented evaluation 基于领域知识的A型主动脉夹层综合分割及面向临床的评估 01 文献速递介绍 A型主动脉夹层&#xff08;TAAD&#xff09;是一种医疗急症&a…...

守护进程编程、GDB调试以及外网连接树莓派

目录 一、什么是守护进程以及如何创建守护进程1. 什么是守护进程&#xff1f;2. 如何创建守护进程&#xff1f; 二、什么是GDB调试以及如何用GDB命令调试C程序1. 什么是GDB&#xff1f;2. 如何用GDB命令调试C程序&#xff1f; 三、外网访问树莓派 一、什么是守护进程以及如何创…...

HTML理论题

1.什么是HTML? 超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。 2.DOCTYPE 的作用是什么?标准与兼容模式(混杂模式)各有什么区别? DOCTYPE 的作用是告知浏览器的解析器用什么文档标准解析这个文档。 标准模式:用于…...

Cables为链上社区树立标杆:专注于实用性、用户主权与全球流动性

在 Web3 世界&#xff0c;“社区”这个词已逐渐沦为炒作、虚高数据与短暂参与的代名词。Cables 正在颠覆这一现状&#xff0c;以真实贡献与长期可持续发展为核心&#xff0c;走出了一条独特的路径。 最近&#xff0c;Cables 推出了其核心长期战略之一——积分计划&#xff08;…...