自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (2)
  • 收藏
  • 关注

原创 rtos中任务间交互场景及工具使用

在freertos中,任务交互有很多方式,通过Xmind总结了下任务间的交互手段和相关的使用场景,在此分享下,期待大家的补充和交流。

2022-02-13 14:27:36 449

原创 RAM、ROM、FLASH内存的区别和使用

前言在嵌入式开发中,大家都会涉及到操作内存,例如烧录程序、断电记忆读写FLASH、堆栈使用。本文主要讲解,这些常用的ROM RAM FLASH到底有什么区别,使用时需要注意些什么ROM RAM FLASH含义ROM:只读内存,最早的PROM,只能编程一次,无法重复写入,所以较为只读内存,后面发展出紫外线照射下可写可擦的EPROM,但由于擦写麻烦又发展出了EEPROM,电可擦的ROM。RAM:随机存储器,可按字节读写,读写速度块,但有缺点,掉电会丢失数据。FLASH:可擦可写。断电不丢

2022-02-02 19:28:44 12214

原创 SPI中NSS/CS使用和SPI常见问题

前言SPI是常用的通信手段之一,经常使用,但也经常踩坑;网上资料很多,但对于CS/NSS使用的讲解比较少,正好最近使用SPI也遇到了一些问题,记录一下。SPI中NSS作用和用法简单来说,NSS和CS是一个东西,主要用于片选从机的。SPI控制器上连接的内部NSS引脚。NSS硬件模式和软件模式:可以通过寄存器配置,选择将内部NSS引脚连接到SSI寄存器,使用寄存器控制NSS电平,也可以选择内部NSS引脚和外部真正的NSS GPIO相连,由外部引脚电平来控制NSS。我画了一个关系图,可以清晰的看明白NS

2021-11-28 17:45:20 29790 4

原创 undefined reference to 错误问题

问题 编译时出现undefined reference to错误编译时出现变量或函数undefined reference问题,以前遇到的一般都是没有引用头文件,或者声明的函数体与调用的函数不一致导致。最近再次遇到此问题,经过分析,已经引用了头文件,但依旧报错;仔细比对头文件中的声明与调用的函数是否一致,也未发现问题;也能够找到函数原型。后面经过一系列的检查,发现原因是编译器找不到使用的函数体!!!!发现虽然头文件引用成功了,函数声明也没有写错,但对应函数本体的.c源文件没有被编译脚本引入,没有将源

2021-11-24 22:32:59 20157 4

原创 任务调度的初始化及上下文切换原理

这里写目录标题前言任务调度整体框架任务调度初始化源码分析启动第一个任务分析PendSV中断systick定时中断前言本文将从调度器的创建为入口,通过分析定时器中断以及PendSV中断的原理,刨析任务调度的本质原理。任务调度整体框架从上图可以看到,调度器是在main函数中初始化,同时初始化后会启动第一个任务函数;任务上下文切换实际也是借用了一个特殊的中断PendSV,此中断可以挂起,当有任务切换请求后,需要在没有更高优先级中断执行时才会执行PendSV。PendSV主要就是保存上文,切换到下文。任

2021-11-21 18:51:08 1044

原创 无刷电机FOC控制转速达不到问题

前言问题:在对无刷电机进行FOC闭环控制时,发现电机转速一直达不到电机额定转速;额定为5400r/min,实际才跑到了1600r/min。分析原因无刷电机控制转速,基本就是通过调节电压、调节定子磁场频率进行调速。为了排除原因,我把每次设置的Uq值设为定值,Ud为0v,这样就保证变量只有一个电机的电角度。将Uq设为当前环境的最大值,发现依旧转速上不去,与额定转速相差甚远。后初步猜测是控制器输出SVPWM的频率速度达不到,计算当前系统的每次设置电机相电压的周期为0.5ms-0.6ms;即一秒钟最多设

2021-11-18 23:37:25 5450 1

原创 任务挂起与恢复的源码分析

前言前面已经讲过freertos任务创建的原理,可以知道任务创建后,会将新任务踢到就绪任务列表中,如果优先级高于当前运行的任务,则会发生任务上下文切换;那么对于运行的任务如何暂停运行,暂时停止他进行任务调度,以及如何恢复被挂起的任务重新进行任务调度;本文将分析任务的挂起和恢复过程,对上述问题进行解答。注意,之前任务创建讲的任务句柄也将排上用场,之前源码分析已经得知,任务句柄是实际是指向的就是任务的TCB(任务控制块)的指针。任务挂起先说明下任务挂起所设计到的一些函数或者宏,后面分析也会讲解这些函数

2021-11-08 23:03:28 711

原创 源码分析之任务创建

freertos源码学习之任务创建以freertosv9.0为例,分析任务创建的流程。以freertosv9.0为例,分析任务创建的流程。任务创建的函数实体如下:BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, const char * const pcName, const uint16_t usStackDepth, void * const pvParameters, UBaseType_

2021-11-03 23:02:11 361

原创 内存释放失败问题

最近

2021-08-02 23:49:13 799

原创 C语言之宏定义使用

C语言之宏定义使用前言C语言中宏定义使用广泛,例如使用宏替代“魔鬼数字”、利用宏代替函数做简单的处理提高效率、实现条件定义等等。一、使用宏定义替代“魔鬼数字”不论是自己写代码还是看他人代码,魔鬼数字是比较让人头大的写法,魔鬼数字让阅读代码的人难以理解,同时自己写的代码常时间不看遇到魔鬼数字也会一脸懵逼,想着是哪个傻叉写的,一看作者是自己。。。。。。使用宏代替魔鬼数字的方法如下://已控制灯光为例,例如根据电机转动状态控制状态灯的点亮、熄灭、快速闪烁。使用魔鬼数字方式:/*返回值0、1、2

2021-06-24 23:50:52 732

原创 针对RT_Thread中rt_pin_mode()函数的分析

针对RT_Thread中rt_pin_mode()函数的分析文章目录前言一、流水灯代码二、分析void rt_pin_mode(rt_base_t pin, rt_base_t mode)函数1.查看其函数原型2.pin_mode函数原型分析总结前言最近学习RT_Thread系统,和以往学单片机一样,依旧是以流水灯做为第一份学习案例;学硬件的基本都有个习惯,看代码喜欢扣到底层,例程中的流水灯IO口配置是用的封装好的函数,所以我就想看看函数底层是如何实现配置GPIO模式以及执行控制IO操作的。提

2021-03-04 22:51:42 2475 2

PID算法的相关教程和资料

内部包括PID的程序,调节PID的文档,温控板的部分资料

2018-05-05

2561光强传感器模块信息

文件里有光强传感器GY2561的原理图,GY2561的芯片手册

2018-05-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除