自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 【Freertos】单片机裸机开发和上操作系统的区别

然后上操作系统,如RTOS,就很好解决了这个问题,实际上操作系统就是关系到一个时间片和任务调度,我们可以把每一个要处理的内容放到一个任务里面,然后结合消息队列发送接收处理,进行多任务分割和进行、并行处理,其实也就类似为多个main函数可以调用,然后main函数还可以控制执行与否(是否挂起)。从stm32来讲,单片机裸机开发可以理解为单进程、单线程的开发,也就是只有一个main函数,然后系统就只需要运行main函数从头走到尾就可以了,期间还包括前后台的设计,如中断和中断处理。这往往加大了开发的难度。

2024-10-10 09:51:20 412

原创 【单片机】快速定位查找函数库

在我们keil5中左侧有一个Functions的按钮,按下就是各种路径中的文件,然后也是按照不同的模块封装好了的,这个时候我们就寻找对应的模块展开就可以了。如图,我们假设要找gpio的函数,这个时候张开就有全部的函数名字在这里啦,方便快速查找,找到对应的双击进去就跳转到对应的定义内容了。

2024-10-08 09:33:51 194

原创 【单片机】keil5安装(基于江科大手把手教学)

这是从江科大链接下载下来的资料包,线打开Keil5_MDK进行软件下载双击-->-->-->  把Core地址改在D盘,但是-->  接下来的这些随便写  -->进行下载 --> 安装-->finish, 这个时候keil5就下载完成了,接下来就要进行stm32环境的配置了。

2024-10-08 09:23:47 583

原创 【单片机】stm32的stlink烧录不进去总结

1.新手: 魔术棒的debug那里选错了,是stlink,点成其他烧录了。 2.芯片未激活:类似是属于低功耗的那种情况,最直接的方法是按住复位键,点击烧录,再松开复位键(超实用) 3.进入了低功耗模式或者烧录脚被关闭服用成GPIO脚了,方法如2. 4.接线问题 5.显示M3和M4的不匹配: 正常情况我遇到的是支持库的不同,如stm32f1的c8t6 ,和RCt6 , 一个支持库的后缀c8是 ld,  rc是md,只要在

2024-09-30 18:26:21 256

原创 【单片机】ADC

ADC在我们日常中是比较常用的,最普通的不过于各种传感器的值的转换,在企业开发层面,更是用到ADC进行不同按键键值的读取。而不是常用的普通的IO口判断。ADC是作为外设用的,前面提到的判断按键,主要是其不占用CPU,可以大大节省功耗和主控的运行,其次,ADC是一个模数转换的过程,也就是把电压转化为数组,不同的开发板ADC支持的阈值范围不一样。大部分都是12位分辨率,也就是 2^12 = 4096 , 意思就是可以对支持的电压范围分为4096等份进行测量。

2024-09-30 18:06:11 495

原创 【C语言】volatile

volatile是起到防止优化在作用,直接说就是 ---> 原原本本按照代码的样子给机器。可能比较难理解,看下面:

2024-09-24 14:05:25 247

原创 【单片机】定时器--双边沿输入捕获计算占空比

双边沿输入捕获,主要是用于计算方波的占空比的,精度是相对比较高的,主要运用于蓝桥杯比赛中。双边沿顾名思义就是上升沿和下降沿。通过设置定时器双通道,在初始化配置为上升沿进入中断,然后读取定时器计数值,接着对计数值清零,然后再次开启定时器上升沿输入捕获。但是这样的前提是要滤掉第一个边缘,因为你没法初始就是从上升沿开始计数。滤过第一个之后,后面流程就是:上升沿---> 读取计数值--->计数值清零,重新开启定时器中断。这样的作用就是,计数值可以通过结合定时器的频率计算出这一方波的频率、周期。

2024-09-13 09:39:54 456

原创 【单片机】定时器 - pwm波输出

定时器PWM波的输出: 输出PWM波实际上可以理解为输出方波, 我们常用单片机代码设置只能设置高电平、低电平, 但是我们很难。然而单片机的pwm功能就实现了这个功能。

2024-09-11 14:40:49 491

原创 【单片机stm32】定时器 --普通定时

基本定时器: 在我的理解是只能用于普通的定时功能,也就是中断唤醒通用定时器 :可以用于pwm波的输出、占空比的输入捕获计算、双通道捕获高级定时器:可以用于互补输出pwm波形、带有刹车功能(学生期间正常很少用到)

2024-09-11 14:13:44 616

原创 【单片机stm32】外部中断EXTI

外部中断可以理解为IO口进行输入捕获外部设备电平,当IO口检测到电平符合设置 需求的时候,进入中断,执行中断回调函数。常用也是为按键的输入捕获,但是外部中断进行输入捕获远远比普通的按键轮询更加可靠,也更加精确。

2024-09-09 18:20:06 490

原创 【单片机】 GPIO不同模式

gpio就是我们控制的引脚,其功能大体上可以区分为输入和输出。

2024-09-09 18:08:23 338

原创 【C语言】几种循环的使用for() 、while()、do{}while()

这样循环,流程容易记乱,要注意!!--> 判断 ,走 {} a++写分号就是不设置的意思,如上第二,就是不赋值, 第三就是没条件,没赋值,相当于while(1){}

2024-08-30 17:17:10 299

原创 【C语言】引用头文件中 “ “ 和 < >的区别

例如 : 系统内部可调用库如: 等等。1.对于 " " 包含的,指的是先搜索用户自己创建的文件,再搜索系统内部可调用库。2.对于 < > 包含的, 是先搜索系统内部可调用库,再搜索用户自己创建的文件。2个的不同用法,指的是系统内部搜索文件的先后顺序不同。

2024-08-30 14:25:17 125

原创 【C语言】static关键字

1.声明在函数内: 修改生存周期。函数是在调用的时候申请内存,退出的时候释放内存,用static的时候,申请的内存是在全局区(静态区)。生命周期是变成了整个程序,程序关闭了才会释放内尺寸。2. 限制有效可使用范围,只能在当前文件下。

2024-08-30 14:07:16 158

原创 【C语言】sizeof和strlen

sizeof和strlen是面试官常问的点,非常重要!!

2024-08-30 11:14:14 184

原创 【C语言】#define和typedef

typedef 用于对不同的数据类型起别名#define 主要用于对一些代码的简洁找替代写法 以及让代码更直观。

2024-08-29 18:42:16 306

原创 【C语言】enum枚举

red;white;black;green;声明变量:enum color color1,color2,color3;

2024-08-29 11:59:43 224

原创 【C语言】union联合体

union 联合体占用内存的可复用的,变量之间内存共享,所以每次修改都会覆盖原来已有的变量。struct占用的内存是固定的,不同变量之间不会相互影响。

2024-08-29 10:41:33 124

原创 【C语言】结构体

这里只列举2种最常见的结构体写法如图可知:对于上面的结构体,是最最最普通的写法,声明也比较复杂,需要把前面的名字都打出来 : struct mystruct myone 代表了声明结构体,命名为myone对于下面的结构体,可以理解为重命名, 把 struct mystruct2 合并重命名简写为struct_2 , 这样就方便代码编写,也可以通过重命名更直接知道该结构体是做什么的。这是比较大部分的写法。

2024-08-29 00:39:50 332

原创 【C语言】进制之间的转换

·在计算机中,进制是我们最常见的。最主要是二进制、十进制、十六进制。不同的进制运用在不同领域,如下 :二进制: 只有0和1。可以理解为是计算机语言。我们写的代码在计算机转换到最后也只是010101的数字。可以理解为是进制中的底层。十进制: 0- 9。主要是跟我们人看数字相关。我们日常中说的就都是十进制的,但是在计算机中往往是编程写数值的时候才会用到。十六进制 :0 - F。这个在嵌入式领域是最常见的,也是必须要掌握的。我们的寄存器地址大部分就是用十六进制写的。

2024-08-29 00:01:46 261

空空如也

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

TA关注的人

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