首先了解一下指针。
例如: int intA=100;定义一个整型变量intA,值为100。
比如占的首地址为#888,变量末地址为#888+32。
int *ptr;定义一个指针型变量ptr。 ptr=&intA;ptr即为地址,&像钩子一样把intA的地址钩出来赋值给ptr *ptr=intA=100;*像打靶一样,射向地址的内容。即*ptr=100。
理解了此内容后,再来看int *ptr和void *ptr的区别,指针型变量的类型void和int有啥作用?
还用以上例子,假如ptr的地址为#888,那末地址是+8/+16/+32/+64呢,数据占用多长地址这就需要看类型了,int类型在32位单片机中是+32。
void类型只能确定首地址,不能确定数据占用多长内存。
下面举例,给任务传递一个参数: 为了便于理解,将byte转换为void,任务1是通过中间变量转换的,任务二是直接转换的。两种方法都可以。
审核编辑:刘清
-
单片机
+关注
关注
6069文章
45108浏览量
654283 -
FreeRTOS
+关注
关注
13文章
495浏览量
64769 -
ESP32
+关注
关注
21文章
1029浏览量
19574
原文标题:FreeRTOS给任务传递单个参数(ESP32)
文章出处:【微信号:硬件会,微信公众号:硬件会】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
【RA4L1-SENSOR】04 用FreeRTOS重构工程
向FreeRTOS的任务中发送事件队列是有什么限制吗?
详解FreeRTOS与SAFERTOS的区别

评论