FreeROST作业day2

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

串口发送数据函数:
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout);
                                
                        UART_HandleTypeDef *huart:指定我们使用的哪个串口,需要指定串口1
                        const uint8_t *pData:要发送的数据
                        uint16_t Size:要发送的数据的长度
                         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:是否成功开启串口接收

DMA串口发送函数:
HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size)
                                        
                UART_HandleTypeDef *huart:指定要给哪个串口发送数据
                const uint8_t *pData:要发送的数据
                uint16_t Size:要发送数据的长度
                HAL_StatusTypeDef:是否发送成功数据    


DMA+空闲中断中断的方式接收数据:
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)

                UART_HandleTypeDef *huart:从哪个串口去接收数据
                uint8_t *pData:数据保存的地址
                uint16_t Size:每次要接收多少个数据
                HAL_StatusTypeDef:是否成功开启DMA+空闲中断

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

作用:直接存储器存取(DMA) 用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须 CPU干预,数据都可以通过 DMA 进行快速地传输。为其他操作保留了 CPU 资源。

使用方法: 1、使用HAL_UARTEx_ReceiveToIdle_DMA()函数进行接收数据
           2、每次接收完成数据后都需要对数组进行清空操作
           3、当处理完成数据后需要重新开启接收

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

int adc_val = 0;//用于保存adc采样的数值
float volt_val = 0;//用于保存电压的数值
int i = 0;//用与调整LED灯的亮度值HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_3);//打开定时器的PWM通道3while (1){HAL_ADC_Start(&hadc);//开启ADC采样adc_val = HAL_ADC_GetValue(&hadc);//获取ADC采样的值volt_val = adc_val /4095.0f * 3.3f;//将采样值转换为电压值i =  volt_val / 3.3f * 999;//通过电压改变LED灯的亮度,光照越强,电压越低,则LED灯越暗//反之,光照越弱,电压越高,则LED灯越亮TIM3->CCR3 = i;		}

 

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

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

相关文章

C语言经典例题(16) --- 按照格式输入并交换输出、计算机表达式的值、能活多少秒、喝酸奶、竞选社长

1.按照格式输入并交换输出 题目描述: 输入两个整数,范围-231~231-1,交换两个数并输出。 输入描述: 输入只有一行,按照格式输入两个整数,范围,中间用“,”分隔。 输出描述: 把两个整数按格式输出,中间用“…

【LeetCode】热题100:排序链表

题目: 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 示例 1: 输入:head [4,2,1,3] 输出:[1,2,3,4] 示例 2: 输入:head [-1,5,3,4,0] 输出:[-1,0,3,4,5] …

linux进程fork函数的讲解。

通过指令,查看接口的详细信息 man forkOn success, the PID of the child process is returned in the parent, and 0 is returned in the child. On failure, -1 is returned in the parent, no child process is created, and errno is set appropriately. 这里的返回值的意…

【Java笔记】Lambda表达式

文章目录 回顾下InterfaceWhy InterfaceInterface例子需求实现需求 Lambda表达式Why LambdaLambda表达式Lambda表达式实现send()无参数的抽象方法有参数的抽象方法多参数、有返回值的抽象方法赋值给变量Email or SMS? Lambda表达式的限制Reference Lambda表达式是Ja…

FPGA设计_加法器

文章目录 前言补充:各种门电路符号一、半加器二、全加器三、串行进位加法器3.1、verilog代码设计 四、超前进位加法器4.1、verilog代码设计 五、进位链CARRY4 前言 在之前一篇介绍7系列FPGA底层资源的时候,我们提到过每一个slice当中有一个CARRY4&#…

NodeJS 基础入门学习手册

什么是 Node.js 简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。 Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Google 的 V8 引擎,V8 引擎执行 Javascript 的速度非常快…

玫瑰图和雷达图(自备)

目录 玫瑰图 数据格式 绘图基础 绘图升级(文本调整) 玫瑰图 下载数据data/2020/2020-11-24 mirrors_rfordatascience/tidytuesday - 码云 - 开源中国 (gitee.com) R语言绘图—南丁格尔玫瑰图 - 知乎 (zhihu.com) 数据格式 rm(list ls()) libr…

2024年新算法-冠豪猪优化算法(CPO),CPO-RF-Adaboost,CPO优化随机森林RF-Adaboost回归预测-附代码

冠豪猪优化算法(CPO)是一种基于自然界中猪群觅食行为启发的优化算法。该算法模拟了猪群在寻找食物时的集群行为,通过一系列的迭代过程来优化目标函数,以寻找最优解。在这个算法中,猪被分为几个群体,每个群体…

CA根证书——https安全保障的基石

HTTPS通信中,服务器端使用数字证书来证明自己的身份。客户端需要验证服务器发送的证书的真实性。这就需要一个可信的第三方机构,即CA,来颁发和管理证书。CA根证书是证书颁发机构层次结构的顶级证书,客户端信任的所有证书都可以追溯…

[lesson01]学习C++的意义

学习C的意义 C语言特点 C语言是在实践的过程中逐步完善起来的 没有深思熟路的设计过程残留量过多低级语言的特征 C语言的目标是高效 最终程序执行效率的高效 软件方法论的发展 面相过程程序设计:数据结构 算法 主要解决科学计算问题,用户需求简单而…

python实现泊松回归

1 什么是基于计数的数据? 基于计数的数据包含以特定速率发生的事件。发生率可能会随着时间的推移或从一次观察到下一次观察而发生变化。以下是基于计数的数据的一些示例: 每小时穿过十字路口的车辆数量每月去看医生的人数每月发现的类地行星数量 计数数…

行车记录打不开?别慌,数据恢复有高招!

行车记录打不开,这恐怕是许多车主都曾经遭遇过的烦恼。在驾驶途中,行车记录仪本应是记录美好瞬间、保障行车安全的重要工具,但一旦它出现打不开的情况,所有的期待与信赖便瞬间化为乌有。面对这种情况,我们该如何应对&a…

web学习笔记(五十一)

目录 1. post请求和get请求的区别 2. CORS 跨域资源共享 2.1 什么是同源 2.2 什么是同源策略 2.3 如何实现跨域资源共享 2.4 使用 cors 中间件解决跨域问题 2.5 JSONP 接口 2.6 实现 JSONP 接口的步骤 1. post请求和get请求的区别 传参方式不同:get请求参数…

文本文件操作

大家好&#xff1a; 衷心希望各位点赞。 您的问题请留在评论区&#xff0c;我会及时回答。 文件操作 程序运行时&#xff0c;产生的数据都是临时数据&#xff0c;程序一旦运行结束都会被释放。通过文件可以将数据持久化。 C中对文件进行操作需要包含头文件<fstream> 文件…

2024年抖音小店的保证金是多少?真的可以做0元保证金的店铺吗?

大家好&#xff0c;我是电商糖果 2024年想要入驻抖音小店的商家依旧很多&#xff0c;关于小店的保证金问题也有不少人前来咨询。 大家问的最多的是可以开通0元保证金的店铺吗&#xff1f;以及2024年抖音小店保证金是多少&#xff1f; 这里糖果给大家一个个解答。 可以开通0…

Linux 服务service(一)

目录 一、服务入门1.1 概述1.2 创建及管理Systemd服务1.2.1 创建service文件1.2.2 创建脚本文件1.2.3 管理Systemd服务1.2.4 服务输出 1.3 服务文件常用参数1.3.1 UNIT单元1.3.2 service单元1.3.3 install单元 1.4 target文件常用参数1.5 周期性任务timer1.5.1 创建timer文件1.…

第十八章 算法

一、介绍 1.1 什么是算法 算法&#xff08;Algorithm&#xff09;是指解题方案的准确而完整的描述&#xff0c;是一系列解决问题的清晰指令&#xff0c;算法代表着用系统的方法描述解决问题的策略机制。也就是说&#xff0c;能够对一定规范的输入&#xff0c;在有限时间内获…

注意力机制篇 | YOLOv8改进之在C2f模块添加级联群体注意力机制CGAttention | CVPR 2023

前言:Hello大家好,我是小哥谈。级联群体注意力机制(Cascading Group Attention)是一种注意力机制,它通过对输入序列进行逐级处理来捕捉不同层次的语义结构。该机制主要由两个关键部分组成:群体注意力和级联过程。在具体实现上,级联群体注意力机制通过构建一个层次结构,…

YOLOv9改进策略 :IoU优化| Inner-IoU基于辅助边框的IoU损失,高效结合 GIoU, DIoU, CIoU,SIoU 等 | 2023.11

💡💡💡本文独家改进:Inner-IoU引入尺度因子 ratio 控制辅助边框的尺度大小用于计算损失,并与现有的基于 IoU ( GIoU, DIoU, CIoU,SIoU )损失进行有效结合,实现高效涨点 💡💡💡适用场景:小目标数据集,涨点近两个点,强烈推荐 《YOLOv9魔术师专栏》将从以下…

第十七章 Kafka

一、特性 - 高吞吐、低延迟 - 高伸缩性 - 持久性、可靠性 - 容错性 - 高并发 通过 O(1)的磁盘数据结构提供消息的持久化&#xff0c;这种结构对于即使数以 TB 的消息存储也能够保持长时间的稳定性能。 高吞吐量&#xff1a;即使是非常普通的硬件 Kafka 也可以支持每秒数百…