4.17freeRTOS

1.总结串口的发送和接收功能使用到的函数

串口的数据发送

HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout)
  • UART_HandleTypeDef *huart:指定要使用的串口

    • const uint8_t *pData:要发送的数据

  • const uint8_t *pData:要发送的数据

  • uint16_t Size:要发送的数据字节数(数据的长度),strlen可以计算字符串的长度,使用sizeof计算的是字符串所占内存的大小

  • uint32_t Timeout:超时时间,单位是ms,

  • HAL_StatusTypeDef:是否发送数据成功

找到接收完成中断回调函数 

HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
  • UART_HandleTypeDef *huart:指定从哪个串口中接收数据

  • uint8_t *pData:接收到数据后保存的地址

  • uint16_t Size:每一次接收多少个字节数据

  • HAL_StatusTypeDef:是否成功开启串口接收功能

串口的数据接收

处理定长数据

HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
  • UART_HandleTypeDef *huart:指定从哪个串口中接收数据

  • uint8_t *pData:接收到数据后保存的地址

  • uint16_t Size:每一次接收多少个字节数据

  • HAL_StatusTypeDef:是否成功开启串口接收功能

DMA+空闲中断方式接收长度不确定的数据

类似于LED ON和LED OFF这种长度的不确定的数据。

HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
  • UART_HandleTypeDef *huart:要给哪个串口发送数据

  • const uint8_t *pData:要发送什么数据

  • uint16_t Size:每次要发送多少个字节数据

  • HAL_StatusTypeDef:是否发送成功

2.总结DMA的作用,和DMA+空闲中断的使用方式

DMA可以减轻CPU的负担,提高CPU的运行效率。提高数据传输效率和性能。高速传输数据。

配置ADC模块:首先需要配置ADC模块的参数,包括采样通道、采样精度、采样速率等。可以使用STM32CubeMX工具进行配置,或者手动编写代码进行配置。
配置DMA:使用DMA(直接内存访问)可以实现数据的高速传输,减少CPU的负载。配置DMA通道,将ADC的转换结果传输到指定的内存地址。
配置空闲中断:在DMA传输完成后,可以通过空闲中断来触发处理数据的操作。在空闲中断中可以读取DMA传输的数据,并进行相应的处理。
根据采样数值调节LED灯亮度:根据光敏电阻的采样数值,可以确定环境光的强度。根据需求,可以通过PWM(脉冲宽度调制)控制LED灯的亮度。根据采样数值的大小,调整PWM的占空比,从而改变LED灯的亮度。

3.使用PWM+ADC光敏电阻完成光控灯的实验

	while(1){HAL_ADC_Start(&hadc);adc_val = HAL_ADC_GetValue(&hadc);volt = adc_val / 4095.0f*3.3f ;if(volt >= 0.70){TIM3->CCR3 =adc_val/4095.0f*500;}else{TIM3->CCR3 =1;}HAL_Delay(1);}

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

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

相关文章

【Python-基础】列表合集

.tolist() 将其他数据类型转换成列表 1.可以将<class ‘pandas.core.series.Series’>转换为列表 images [img_id[filename].tolist() for img_id in data] # data是一个列表,列表中每一项都是用read_csv函数读取的csv文件内容 # type(img_id[filename]) <class …

网站模板-慈善捐赠基金会网站模板 Bootstrap4 html

目录 一.前言 二.预览 三.下载链接 一.前言 这是一个慈善网站的页面。页面包含了导航栏、横幅部分、关于、使命、新闻、活动、捐赠和页脚等不同的部分。该网站还包含了一些CSS样式和JavaScript脚本来实现交互和样式效果。 这个网站的具体结构如下&#xff1a; 导航栏部分&a…

吐血整理102个Python项目,从基础到高级,练完你就牛了!

前言 Python 初学者在迈过安装编程环境和基本语法的门槛&#xff0c;准备大展身手的时候&#xff0c;可能突然就会进入迷茫期&#xff1a; 不知道做些什么、再学些什么。。。 然后对编程的兴趣就会慢慢消退&#xff0c;找不到坚持下去的理由&#xff0c;从而慢慢淡忘之前学会…

算法中的背包问题

背包问题 背包问题 是经典的动态规划问题&#xff0c;它一共有 9 个分类&#xff1a; 01 背包问题 完全背包问题 多重背包问题 混合背包问题 二维费用背包问题 分组背包问题 背包问题求方案数 求背包问题的方案 有依赖的背包问题 01背包问题 完全背包问题 322.零钱兑换 给…

链表中LinkList L与LinkList *L( * L.elem L->elem)

摘要 LinkList L&#xff1a;L是结构体指针&#xff0c;使用“->“运算符来访问结构体成员&#xff1b;&#xff08;*L&#xff09;是结构体&#xff0c;使用"."运算符访问结构体成员 函数是否有&看是否要返回该链表等&#xff0c;若返回加&&#xff0c…

OpenCV基本图像处理操作(九)——特征匹配

Brute-Force蛮力匹配 Brute-Force蛮力匹配是一种简单直接的模式识别方法&#xff0c;经常用于计算机视觉和数字图像处理领域中的特征匹配。该方法通过逐一比较目标图像中的所有特征点与源图像中的特征点来寻找最佳匹配。这种方法的主要步骤包括&#xff1a; 特征提取&#xff…

热烈祝贺中国特医首次获得蒙特国际品质奖!中国特医健效达品质永攀世界高峰

近日&#xff0c;第63届Monde Selection品质评鉴活动圆满落幕&#xff0c;健效达旗下优康力和优益力产品凭借其卓越品质&#xff0c;成功摘得世界蒙特奖&#xff0c;这是中国特医食品首次获得蒙特奖国际品质奖。 健效达特医树立世界特医新标杆&#xff0c;永攀世界高峰&#xf…

解释Python中的NumPy库及其在科学计算中的作用

解释Python中的NumPy库及其在科学计算中的作用 NumPy库在Python科学计算中的作用 NumPy&#xff08;Numerical Python的简称&#xff09;是Python中一个开源的数值计算扩展库&#xff0c;它提供了大量的数学函数库用于对数组和矩阵进行运算&#xff0c;同时也针对数组运算提供…

Java定时任务

一、java.util.Timer java.util.Timer 类允许您在未来的某个时间执行一个任务&#xff0c;或者在一定的时间间隔执行任务。您可以创建一个 Timer 实例&#xff0c;并调用其 schedule() 方法来安排任务的执行。这种方式比较简单&#xff0c;但在高并发环境下可能不够灵活。 1.…

放大招,推广手机流量卡,佣金丰厚等你来拿

流量卡推广是一个非常冷门但又在身边非常常见的行业&#xff0c;知道的人目前靠着这个信息&#xff0c;发了很多小财&#xff0c;可以说早知道这一行的人会非常容易变成暴发户。 你可能也会好奇&#xff0c;为什么那么多广告都是在推流量卡&#xff0c;他们推卡到底有多高的利…

将gidp模块、ipam集成到ultralytics项目中实现gidp-yolov8、ipam-yolov8

gdip-yolo与ia-seg都是一种将图像自适应模块插入模型前面,从而提升模型在特定数据下检测能力的网络结构。gdip-yolo提出了gdip模块,可以应用到大雾数据与低亮度数据(夜晚环境),然后用于目标检测训练;ia-seg将ia-yolo中的代码修改了一下修车了ipam模块,应用到低亮度数据(…

数据库技术基础

根据希赛相关视频课程汇总整理而成&#xff0c;个人笔记&#xff0c;仅供参考。 基本概念 数据库通常是指有组织地、动态地存储在&#xff08;外存上的相互联系的数据的集合&#xff09;应用数据库主要目的是解决数据&#xff08;共享&#xff09;问题。 三级模式/两级映像&a…

【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题

文章目录 一、什么是时间复杂度和空间复杂度&#xff1f;1.1 算法效率1.2 时间复杂度的概念1.3 空间复杂度的概念1.4 复杂度计算在算法中的意义 二、时间复杂度的计算2.1 大O渐进表示法2.2 常见时间复杂度计算举例 三、空间复杂度的计算四、Leetcode刷题1. 消失的数2. 旋转数组…

代理服务器端口分配测试

上游服务器需要一个短暂或临时端口请求下游服务器&#xff0c;测试端口分配方式。 参考nginx 摘录-腾讯云开发者社区-腾讯云 框架为 <dependency><groupId>org.mitre.dsmiley.httpproxy</groupId> <artifactId>smiley-http-proxy-servlet</ar…

一些docker安装配置以及常见命令

​常用命令 docker 命令 //进去容器内部&#xff0c;找到需要拷贝的文件及目录 docker exec -it 2c2600fb60f8 /bin/bash ​ //将container id为4db8edd86202的容器内elasticsearch.yml文件拷贝到宿主机指定目录下&#xff1a; docker cp 4db8edd86202:/usr/share/elasticsea…

git出现错误 fail to push some refs to “xxx“

问题产生原因&#xff1a;根据测试猜测造成这一错误的原因是在码云的远程仓库上删除了一个文件,本地没有pull下来,直接进行了commit,commit到本地仓库后,如果在pull下来,也是无法提交的 问题解决办法: 使用 git pull --rebase,拉取远程仓库,并将本地仓库新的提交作为最顶层的提…

张大哥笔记:电脑周边的10大刚需创业小项目

hello&#xff0c;大家好&#xff0c;我是张大哥&#xff0c;今天一口气给大家分享围绕电脑周边的10大刚需创业小项目&#xff0c;本文章旨在帮助大家如何快速切入到细分领域里面搞钱&#xff01; 如何赚钱&#xff0c;无非就是解决人群痛点&#xff0c;你要懂得根据用户痛点去…

实现 Table 的增加和删除,不依赖后端数据回显

需求 删除前 删除后 分析 首先写一个 Table <a-card style"width:100%"><template#extra><a-button type"text" click"addSelectItem" style"margin-right: 5px">添加</a-button><a-button type&quo…

融合创新!全局特征+局部特征,性能优于Transformer

在图像处理领域&#xff0c;全局特征和局部特征融合是一种常见且十分高效的策略&#xff0c;用于提高图像分析和识别任务的性能。 全局特征反映了图像的整体属性&#xff0c;如颜色分布、形状轮廓等&#xff0c;它们通常对图像的尺度和旋转具有不变性。 局部特征关注于图像中特…

python 如何获得重定向输入

通过内置的fileinput模块即可实现&#xff0c;创建文件filein.py&#xff1a; #!/usr/bin/env python import fileinput f_input fileinput.input() for line in f_input:print(line, end)增加可执行权限&#xff1a; chmod ax filein.py 使用&#xff1a; $ ls | ./filein.py…