FreeRTOS:day2

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:要发送的数据

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

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

串口接收函数

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:是否成功开启串口接收功能

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

DMA是提供在外设和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速的移动,节省了CPU的资源,用来做其他操作。

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

空闲中断:在发送一串字符串时,两个字符之间的间隔非常短,所以在两个字符之间不叫空闲,当总线上在一个字节的时间内没有再接收到数据时,就会启动空闲中断。

当发送完一次数据后,过一个发送字节的时间内没有收到数据,启动空闲中断,处理接收到的一包数据。

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+空闲中断的接收方式

处理完一次数据需要对数据清空:memset(数组名,0,数组大小);

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:是否发送成功

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

ADC采样:ADC可以将模拟信号转换为数字信号。

开启ADC采样函数

HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef* hadc)

ADC_HandleTypeDef* hadc:要打开的ADC

HAL_StatusTypeDef:是否成功打开ADC采样

获取ADC采样函数:

uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef* hadc)

uint32_t:获取到的ADC采样值

ADC_HandleTypeDef* hadc:从哪个ADC中获取采样值

PWM是脉宽调制,通过控制信号的脉冲宽度来产生模拟效果。由定时器产生。

占空比:高电平时间 / 整个周期时间 * 100%

调节占空比的本质就是调节电压值的大小

开启PWM通道函数

HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)

TIM_HandleTypeDef *htim:开启的定时器的通道

uint32_t Channel:选择的通道,TIM_CHANNEL_3

HAL_StatusTypeDef:是否成功开启PWM通道

 while(1){HAL_ADC_Start(&hadc);adc_val=HAL_ADC_GetValue(&hadc);printf("%d\r\n",adc_val);//HAL_Delay(1000);int j=adc_val*999.0/4000.0;TIM3->CCR3=j;HAL_Delay(2);}

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

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

相关文章

【Mysql数据库进阶01】窗口函数

窗口函数 1 定义2 聚合窗口函数2.1 默认效果/累计效果2.2 前面两行当前一行2.3 前面一行当前一行后面一行 3 排名窗口函数3.1 排名函数3.1.1 排名函数案例 3.2 累积分布 4 取值窗口函数 1 定义 完整的窗口函数定义如下: window_function([expression]) over(partition byorde…

【nnUNetv2进阶】五、nnUNetv2 魔改网络-小试牛刀-加入注意力机制SpatialAttention

nnUNet是一个自适应的深度学习框架,专为医学图像分割任务设计。以下是关于nnUNet的详细解释和特点: 自适应框架:nnUNet能够根据具体的医学图像分割任务自动调整模型结构、训练参数等,从而避免了繁琐的手工调参过程。 自动化流程&a…

H3C交换机ACL部分规则不生效问题

问题描述 H3C交换机ACL部分规则不生效问题 H3C交换机配置ACL后,规则在100左右,约10个接口下调用后,单独 permit 4个指定源、目IP地址的流量。但是只有前2个生效,后边2个相同的配置不生效。 问题原因 ACL性能不够的问题 dis q…

刀具表面上的微结构

刀具表面微结构通常指在刀具表面对特定功能设计的微观纹理,这些纹理可以是沟槽、凹坑、凸起或任何其他形式的微观图案。这些微结构的设计和应用是为了改善刀具的切削性能,减少切削力和切削温度,提高切削效率和精度,同时降低切削液…

前端常见面试题:HTML+CSS

1. title与h1的区别、b与strong的区别、i与em的区别? title与h1的区别: title标签用于定义整个HTML文档的标题,它显示在浏览器窗口的标题栏或者标签页上。每个HTML文档只应该有一个title标签,它对搜索引擎优化(SEO&a…

mysql performance schema 实践

参考MySQL调优性能监控之performance schema,做了一些扩展 1 2、哪类SQL的平均响应时间最多 SUM_NO_INDEX_USED>0用来过滤那些没有使用的查询。 SELECT SCHEMA_NAME,DIGEST_TEXT,AVG_TIMER_WAIT,MAX_TIMER_WAIT,SUM_LOCK_TIME,SUM_ERRORS ,SUM_SELECT_FULL_JOIN,SUM_NO_IND…

大规模端云协同智能计算(大小模型端云协同联合学习)

原文作者:上海交通大学 吴帆 0 引言 目前,许多智能技术已经走入人们的日常生活,例如交互式商品推荐、人脸识别、语音识别、体征观测、疾病诊断、智能决策等,这些智能技术在为我们生活带来极大便利的同时,也深刻改变了…

前端开发攻略---实现与ChatGPT同款光标闪烁打字效果。

1、演示 2、实现代码 <!DOCTYPE html> <html lang"ch-ZN"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"widt…

Spingbot项目配置mySQL或postgresSQL详解

1&#xff1a;postgresql库: yml文件 探索PostgreSQL&#xff1a;从基础到实践&#xff08;简单实例&#xff09; # PageHelper分页插件 pagehelper:helperDialect: postgresqlreasonable: truesupportMethodsArguments: trueparams: countcountSql# 数据源配置 spring:datas…

SQLite作为应用程序文件格式(二十八)

返回&#xff1a;SQLite—系列文章目录 上一篇:SQLite数据库中JSON 函数和运算符(二十七) 下一篇&#xff1a;SQLite—系列文章目录 摘要 具有定义架构的 SQLite 数据库文件 通常是一种出色的应用程序文件格式。 以下是十几个原因&#xff1a; 简化的应用程序开发单文…

【华为OD机试】计算三叉搜索树的高度【C卷|100分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 定义构造三叉搜索树规则如下: 每个节点都存有一个数,当插入一个新的数时,从根节点向下寻找,直到找到一个合适的空节点插入。查找的规则是: 1.如果数小于节点的数减去500,则将数插入节…

web安全学习笔记(9)

记一下第十三课的内容。 准备工作&#xff1a;在根目录下创建template目录&#xff0c;将login.html放入其中&#xff0c;在该目录下新建一个reg.html。在根目录下创建一个function.php 一、函数声明与传参 PHP中的函数定义和其他语言基本上是相同的。我们编辑function.php …

机器学习引领金融革命:重塑金融服务领域新格局,开启智能化新篇章

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导…

element-ui报表合计逻辑踩坑

element-ui报表合计逻辑踩坑 1.快速实现一个合计 ​ Element UI所提供的el-table中提供了方便快捷的合计逻辑实现&#xff1a; ​ https://element.eleme.cn/#/zh-CN/component/table ​ 此实现方法在官方文档中介绍详细&#xff0c;此处不多赘述。 ​ 这里需要注意&#x…

【AIGC调研系列】MiniMax 稀宇科技的abab 6.5 系列模型与国外先进模型相比的优缺点

MiniMax稀宇科技的abab 6.5系列模型与国外先进模型相比&#xff0c;具有以下优缺点&#xff1a; 优点&#xff1a; abab 6.5系列模型采用了MoE&#xff08;Mixture of Experts&#xff09;架构&#xff0c;这是国内首个采用此架构的大模型&#xff0c;标志着MiniMax在自然语言…

【C语言】万字讲解函数栈帧的创建与销毁

目录 前言 一、什么是函数栈帧&#xff1f; 二、理解函数栈帧能解决什么问题呢 三、函数栈帧的创建和销毁解析 3.1 什么是栈&#xff1f; 3.2 认识相关寄存器和汇编指令 3.3 剖析函数栈帧的创建和销毁 3.3.1 esp寄存器与ebp寄存器的重要性 3.3.2 函数的调用堆栈 3.3.…

2024-4-17-ARM作业

温湿度数据采集应用&#xff1a; si7006.h: #ifndef __SI7006_H__ #define __SI7006_H__#include"i2c.h" void delay(int ms); void si7006_init(); short si7006_read_tem(); unsigned short si7006_read_hum();#endif i2c.h: #ifndef __I2C_H__ #define __I2C_…

SAP MRP-MD01与MRP LIVE-MD01N简介

自从SAP推出HANA以后,无论在做项目还是在面试的时候都会遇到一个问题,就是MRP和MRP LIVE 有什么区别。通常顾问都知道MRPLIVE是运行在内存中的,运行效率会优于传统的MRP。经历了很多家的公司都是HANA的系统,基本都很少会用到MRP LIVE,百分之98%都还是在用传统的MRP在跑物料…

利用 Python 开发手机 App 实战

Python语言虽然很万能&#xff0c;但用它来开发app还是显得有点不对路&#xff0c;因此用Python开发的app应当是作为编码练习、或者自娱自乐所用&#xff0c;加上目前这方面的模块还不是特别成熟&#xff0c;bug比较多&#xff0c;总而言之&#xff0c;劝君莫轻入。 准备工作 …

c++的学习之路:24、 二叉搜索树概念

摘要 本章主要是讲一下二叉搜索树的实现 目录 摘要 一、二叉搜索树概念 二、 二叉搜索树操作 1、二叉搜索树的查找 2、二叉搜索树的插入 3、二叉搜索树的删除 三、二叉搜索树的实现 1、插入 2、中序遍历 3、删除 4、查找 四、二叉搜索树的递归实现 1、插入 2、删…