STM32day2

1.思维导图

个人暂时的学后感,不一定对,没什么东西,为做项目奔波中。。。
1.使用ADC采样光敏电阻数值,如何根据这个数值调节LED灯亮度。

while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */adc_val = HAL_ADC_GetValue(&hadc);if(adc_val<3300&&flag==0){	flag=1;for(i=500;i>0;i--){TIM3->CCR3 = i;HAL_Delay(1);}}if(adc_val>3800&&flag==1){	flag=0;for(i=0;i<=500;i++){TIM3->CCR3 = i;HAL_Delay(1);}}HAL_Delay(1000);}/* USER CODE END 3 */

2.总结DMA+空闲中断接收数据的使用方法
原理是原本有cpu处理的数据交由DMA处理,
DMA接收时,一包数据接收完毕,会有一段空闲时间,例如传输一个字节所需的时间,就能把这包数据处理完,例如,通过串口发回电脑端。
DMA跟定时器有些相似,定时器是超时时间超时时,执行任务;
DMA是事件到了,比如一包数据输出完后,存在一个字节没有接收数据的时间,在这段时间内执行事件。
都有回调函数,执行原因不同,
DMA与CPU发送数据的区别,DMA的事件触发是接收完毕数据包后执行,CPU的事件触发是接收到单个字符时执行。
处理的数据长度不同。

1.DMA的作用(DMA+空闲中断接收数据)
DMA代替cpu检测并接收数据,接收完数据后会产生空闲中断,利用空闲中断对接收到的数据进行处理。
2.串口重定向(如何实现串口重定向)
在usart.c文件中在最底行重新定义串口fputc函数
例如:
int fputc(int ch,FILE* f)
{
    HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,1000);
    return 0;
}
3.串口的数据接收
串口数据接收有两种方法,完成中断回调函数,完成空闲中断回调函数。
前者用于处理已知长度的数据包
后者用于处理数据量大或长度不确定的情况

4.ADC采样(分辨率,采样时间)
ADC全称是模拟数字转换器,分辨率是采样的精度,采样时间就是字面意思,采一次样本需要的时长,在STM32里面最长采样时间是239.5Cycles,根据需求选择采样时间。
5.PWM(占空比,ARR,CNT和CCRX的关系)(如何去调整占空比)
PWM是调波,占空比是高电平占整个周期的时间/总-电平时间
PWM是脉宽调制的缩写,是一种通过控制信号的脉冲宽度来产生模拟效果的技术,PWM信号是一系列周期性的脉冲组成,每个脉冲的宽度可以调整,从而改变其平均功率或能量。
ARR是重装载值,CNT是计数值(预分频系数),CCRX是设置的阈值,也就是比较寄存器,高于CCRX端为高电平,低于为低电平,因为lED灯是低电平点亮,所以这里CCRX数值越大LED越亮,低电平在这个周期内占比多,达到调节电压的效果,就行稀释一样,需要低浓度还是高浓度,看比例调整,在微观角度调整,在宏观角度实现相同的效果。
 

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

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

相关文章

hive 数据库用户权限授权

CREATE ROLE cz20240304; GRANT cz20240304_role TO USER cz20240304; grant select on table secured_t to role cz20240304_role;hive用户角色授权官网超链接

开源分子对接程序rDock使用方法(1)-Docking in 3 steps

欢迎浏览我的CSND博客&#xff01; Blockbuater_drug …点击进入 文章目录 前言一、Docking in 3 steps 标准对接rDock 的基本对接步骤及注意事项 二、 三步对接案例Step 1. 结构文件准备Step 2. 产生对接位点Step 3. 运行分子对接3.1 检查输入文件3.2 测试-只进行打分3.3 运行…

【数据结构】二、线性表:6.顺序表和链表的对比不同(从数据结构三要素讨论:逻辑结构、物理结构(存储结构)、数据运算(基本操作))

文章目录 6.对比&#xff1a;顺序表&链表6.1逻辑结构6.2物理结构&#xff08;存储结构&#xff09;6.2.1顺序表6.2.2链表 6.3数据运算&#xff08;基本操作&#xff09;6.3.1初始化6.3.2销毁表6.3.3插入、删除6.3.4查找 6.对比&#xff1a;顺序表&链表 6.1逻辑结构 顺…

【短时交通流量预测】基于小波神经网络WNN

课题名称&#xff1a;基于小波神经网络的短时交通流量预测 版本时间&#xff1a;2023-04-27 代码获取方式&#xff1a;QQ&#xff1a;491052175 或者 私聊博主获取 模型简介&#xff1a; 城市交通路网中交通路段上某时刻的交通流量与本路段前几个时段的交通流量有关&#x…

【Web】浅聊Java反序列化之Spring2链——两层动态代理

目录 简介 简话JdkDynamicAopProxy 关于target的出身——AdvisedSupport EXP 请确保已阅读过前文或对Spring1链至少有一定认知&#xff1a;【Web】浅聊Java反序列化之Spring1链——三层动态代理-CSDN博客 简介 Spring2 和 Spring1 的反序列化过程基本相同&#xff0c;唯一…

【嵌入式】嵌入式系统稳定性建设:静态代码扫描的稳定性提升术

1. 概述 在嵌入式系统开发过程中&#xff0c;代码的稳定性和可靠性至关重要。静态代码扫描工具作为一种自动化的代码质量检查手段&#xff0c;能够帮助开发者在编译前发现潜在的缺陷和错误&#xff0c;从而增强系统的稳定性。本文将介绍如何在嵌入式C/C开发中使用静态代码扫描…

c#空闲中断接收

C# 28.实现串口空闲中断接收功能_c# serialport空闲中断-CSDN博客

Spring Boot 整合 Redis 实现排行榜功能

在Spring Boot中整合Redis实现排行榜功能,你首先需要在项目中添加Redis的依赖,并配置好Redis连接信息。然后,你可以使用Spring Data Redis提供的模板类来操作Redis的有序集合(Sorted Set),从而实现排行榜功能。 以下是使用Spring Boot整合Redis实现排行榜功能的基本步骤:…

Spring Boot启动流程详解

Spring Boot是一个基于Spring框架的快速开发工具&#xff0c;它可以帮助我们快速搭建一个可运行的Spring应用。本文将详细介绍Spring Boot的启动流程&#xff0c;帮助大家更好地理解Spring Boot的工作原理。 一、Spring Boot启动流程概述 Spring Boot的启动流程可以分为以下几…

排序算法——梳理总结

✨冒泡 ✨选择 ✨插入  ✨标准写法  &#x1f3ad;不同写法 ✨希尔排序——标准写法 ✨快排 ✨归并 ✨堆排 ✨冒泡 void Bubble(vector<int>& nums) {// 冒泡排序只能先确定最右边的结果&#xff0c;不能先确定最左边的结果for (int i 0; i < nums.size(); i){…

基于深度学习的交通标志检测识别系统(含UI界面、yolov8、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov8 yolov8主要包含以下几种创新&#xff1a;         1. 添加注意力机制&#xff08;SE、CBAM等&#xff09;         2. 修改可变形卷积&#xff08;DySnake-主干c…

linux系统命令深入研究1——ls的参数

ls list命令有一些常用的参数&#xff0c;其中-a意为列出all全部文件&#xff08;包括隐藏文件&#xff09;&#xff0c;-l列出详细信息&#xff0c;-h以人类可阅读的方式列出文件大小 --full-time是列出详细时间信息&#xff0c;包括最后一次修改时间 -t是按时间排序&#xff…

课时57:数组实践_综合实践_数组案例

1.2.2 数组案例 学习目标 这一节&#xff0c;我们从 信息统计、服务管理、小结 三个方面来学习。 信息统计 需求 分别打印CPU 1min 5min 15min load负载值 命令提示&#xff1a;uptime信息显示&#xff1a;CPU 1 min平均负载为: 0.00CPU 5 min平均负载为: 0.01CPU 15 min平…

Git 内幕探索:从底层文件系统到历史编辑的全面指南

微信搜索“好朋友乐平”关注公众号。 1. Git 底层文件对象 #mermaid-svg-uTkvyr26fNmajZ3n {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-uTkvyr26fNmajZ3n .error-icon{fill:#552222;}#mermaid-svg-uTkvyr26fNmaj…

Spark实战-基于Spark日志清洗与数据统计以及Zeppelin使用

Saprk-日志实战 一、用户行为日志 1.概念 用户每次访问网站时所有的行为日志(访问、浏览、搜索、点击)用户行为轨迹&#xff0c;流量日志2.原因 分析日志&#xff1a;网站页面访问量网站的粘性推荐3.生产渠道 (1)Nginx(2)Ajax4.日志内容 日志数据内容&#xff1a;1.访问的…

每天学习一个Linux命令之chown

每天学习一个Linux命令之chown 在Linux系统中&#xff0c;chown命令用于更改文件或目录的所有者。通常情况下&#xff0c;只有超级用户root和文件所有者本人可以使用chown命令。在这篇博客中&#xff0c;我们将详细介绍chown命令的用法以及所有可用的选项。 1. 命令格式 bas…

【动态规划】完全背包

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;【LeetCode】winter vacation training 目录 &#x1f449;&#x1f3fb;完全背包 &#x1f449;&#x1f3fb;…

政安晨:【深度学习处理实践】(二)—— 最大汇聚运算

最大汇聚运算&#xff08;Max Pooling Operation&#xff09;是深度学习领域卷积神经网络常用的一种汇聚运算方式。在卷积神经网络中&#xff0c;经过一系列卷积层和激活函数层后&#xff0c;数据在空间尺寸上逐渐减小&#xff0c;特征图的深度也逐渐增加。为了降低数据尺寸并提…

微信小程序(五十三)修改用户头像与昵称

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.外界面个人资料基本模块 2.资料修改界面同步问题实现&#xff08;细节挺多&#xff0c;考虑了后期转服务器端的方便之处&#xff09; 源码&#xff1a; app.json {"window": {},"usingCompone…

算法打卡day11|栈与队列篇03|Leetcode 239. 滑动窗口最大值、347.前 K 个高频元素

小顶堆和大顶堆 小顶堆&#xff08;Min Heap&#xff09;和大顶堆&#xff08;Max Heap&#xff09;是两种特殊的完全二叉树&#xff0c;它们遵循特定的堆属性&#xff0c;即父节点的值总是小于或等于&#xff08;小顶堆&#xff09;或者大于或等于&#xff08;大顶堆&#xf…