自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 串口中断AT指令模板

【代码】串口中断AT指令模板。

2024-07-14 18:27:44 97

原创 嵌入式常用知识2

(1)一个整型数(2)一个指向整型数的指针(3)一个指向指针的指针,它指向的指针时指向一个整型数的指针(4)一个有10个整型数的数组(5)一个有10个指针的数组,这10个指针是指向整型数的(6)一个指向有10个整型数数组的指针(7)一个指向函数的指针,该函数有一个整型参数并返回一个整型数(8)一个有10个指针的数组,这10个指针均指向函数,该函数有各异整型参数并返回一个整型数(1)一个整型数 : int a;(2)一个指向整型数的指针 : int *a;

2024-07-10 20:31:32 742

原创 嵌入式常用知识1

解析:在编译预处理阶段被处理。

2024-07-10 16:51:40 609

原创 程序员0x10

11、中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C支持中断。10、嵌入式系统经常具有要求程序员去访问某特定的内存位置,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66;下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。//0 的反码(错误结果)2、写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。6、static 的作用,请写出两个;12、请判断下面代码输出的结果。7、关键字const的作用;

2024-07-09 13:45:07 406

原创 10、内存分布

栈空间(Stack):用于存储局部变量、函数参数和函数调用信息。自动分配和释放,访问速度快,但空间有限。堆空间(Heap):用于动态分配内存,程序员手动管理内存的分配和释放。空间较大,但容易产生内存泄漏。只读空间(Read-Only Data Segment):用于存储常量和字符串字面值,只读,不能修改。

2024-07-09 00:54:25 235

原创 9、数组

数组是具有相同类型元素的集合,可以通过下标访问每个元素。数组的定义需要指定元素类型和数组大小。int arr[5];// 定义一个大小为 5 的整型数组// 访问和修改数组元素i < 5;i++) {// 初始化数组元素// 输出数组元素i < 5;// 输出结果:数组的定义:指定元素类型和大小,可以通过下标访问元素。数组空间的初始化:可以在定义时进行初始化,未初始化的元素会被设置为默认值。指针与数组。

2024-07-08 17:36:00 162

原创 8、指针 + const

const在之前:表示指针指向的内容是常量,不能通过指针修改内容,但可以改变指针本身。const在之后:表示指针本身是常量,不能改变指针的值,但可以通过指针修改指向的内容。两个const:第一个const修饰指向的内容,第二个const修饰指针本身,指针和指向的内容都是常量。

2024-07-08 15:41:26 1261

原创 7、运算符

算术运算符:执行基本的数学运算(加、减、乘、除、取模)。逻辑运算符:执行逻辑操作,返回布尔值。位运算符:对位进行操作,包括与、或、异或、取反、左移和右移。赋值运算符:将值赋给变量,并支持复合赋值运算。内存访问运算符:用于访问变量的地址或通过指针访问变量的值。

2024-07-08 13:25:32 277

原创 6、类型修饰符

auto:默认局部变量存储类别,可以省略。register:提示编译器将变量存储在寄存器中,提高访问速度。static:定义静态局部变量和静态全局变量,控制变量的生命周期和作用域。const:定义只读变量,不允许修改其值。extern:声明在其他文件中定义的变量或函数,实现跨文件访问。volatile:告知编译器变量的值可能会被外部改变,防止编译器优化。

2024-07-08 12:59:48 273

原创 5、逻辑结构

if-else语句用于根据条件执行不同的代码块。及格。

2024-07-08 00:51:51 467

原创 4、自定义数据类型

typedef用于为现有数据类型创建新名称,提高代码的可读性和可移植性。// 使用typedef定义新类型int x;int y;} Point;// 使用typedef定义的类型printf("大数: %lu\n", big_number);printf("点坐标: (%d, %d)\n", p1.x, p1.y);// 定义函数指针类型// 示例函数// 使用函数指针类型return 0;大数: 1234567890点坐标: (10, 20)

2024-07-08 00:15:18 211

原创 3、常用数据类型

【代码】3、常用数据类型。

2024-07-07 18:45:50 194

原创 2、关键字

用于声明整型变量。

2024-07-07 18:34:11 465

原创 1、预处理

宏定义用于定义常量或者简单的函数。// 定义圆周率常量#define PI3.14159// 定义数组最大长度100// 使用PI宏计算圆的面积// 使用MAX_SIZE宏定义数组return 0;// 定义一个宏来获取两个数中的最大值// 定义一个宏来获取两个数中的最大值 # define MAX(a , b)((a) >(b)?// 使用MAX宏获取x和y中的最大值 int max = MAX(x , y);return 0;

2024-07-07 18:16:10 177

原创 UART通信

【代码】UART通信。

2024-07-06 17:24:32 127

原创 SPI通信协议

对于一个特定的从设备来说,一般在出厂时就会将其设置位某种特定的工作模式;我们使用从设备时,必须保证主设备的工作模式和从设备的工作模式是一致的,否则无法进行通信。所以我们一般需要对主设备的CPOL和CPHA进行设置。

2024-07-06 16:24:31 838

原创 IIC通信协议

例如:主机想要获取从机存储的数据0x88,这个数据存在于从机内存中0x11这个地址中,从机本身的IIC通信地址为0x56。例如:从机地址为0x54,主机主动向从机获取数据,数据为0x88。例如:从机地址为 0x34,需要发送的数据为0x78。通信完成后主机发送停止信号释放总线。

2024-07-04 15:23:54 606

原创 数字滤波 - 振动传感器滤波处理

二维振动传感器工作原理类似于一个开关,当磁珠滚向左边时输出高电平,滚向右边时输出低电平(也可能反过来,看采集结果而定)。由于工作环境会存在一些微小振动,可能会出现高低电平的不断输出,影响采样结果,所以对采样结果做一个滤波处理。传感器函数初始化后,要将shock_state()函数放到10ms轮询一次的代码中,以确保稳定。shock_state()的输出结果是状态有没有进行反转。优势:过滤掉一些短时间的振动,避免误报。

2023-12-19 08:50:59 498 1

原创 ADC滤波 - 限幅平均滤波算法实现

对于连续两次采集到的数据来说:1、如果第一次的采集数据与第二次的数据差值大于最大偏差值:则认定第二次采集的数据有误,不予记录,并默认第一次采集的数据是第二次的数据。2、如果第一次采集数据与第二次的数据差值小于最大偏差值:则认定第二次采集的数据有效,对第二次采集的数据进行保存。对于采集到的数据来说:将所有采集到的数据存放到一个数组(这里是容量为20的数组),将采集到的20个数据进行平均运算,输出平均值。如果有新的数据产生,则将最新的数据替换掉最旧的数据,是先进先出的一个思路,以此保证数据更新的实时性。

2023-12-15 15:11:41 832

原创 电机ADC滤波 - 递推平均滤波算法

本次的算法只对最近采集到的20个数据进行平均处理,通过数据覆盖使数据不易进行突变而造成干扰,为了节约CPU资源,所以不进行浮点数的运算(浮点数运算更加准确,需要精确数据的可以进行程序修改)。注意要点:由于电机采集到的ADC值一般不会超过255,所以采集的值用unsigned char类型的变量进行保存,如果单次输入的值大于255,则要将结构体中的 new_data 、 data[20] 、average_value三个变量的数据类型改成unsigned int。

2023-12-15 10:14:30 820

原创 串口通信实现

与STM32系列单片机相比,CMS32L051单片机串口端口选择性更多(STM32系列单片机以固定端口作为串口端口使用,用户对端口的选择性更低),用户配置起来也更加方便。

2023-12-11 14:19:01 642 1

原创 CMS32L051 - 获取官方例程教程。

可直接搜索中微半导体官网或者直接点击下面链接进行跳转。

2023-12-04 10:30:07 745 3

原创 实现霍尔传感器识别

霍尔传感器相当于一个开关,选用引脚时只需要选用通用的GPIO口即可。各个型号的霍尔传感器输出高低电平可能不一致,本例程只提供参考。

2023-12-04 10:07:55 488

原创 ADC采集

通过查阅数据手册发现:P20引脚用到的ADC为 ANI0 通道为 ADC_Channel_0P70引脚用到的ADC为 ANI29 通道为 ADC_Channel_29P72引脚用到的ADC为 ANI31 通道为 ADC_Channel_31进行ADC初始化时要用到这些参数,需要先查阅好资料。

2023-12-01 16:36:04 530 1

原创 利用时间片轮询实现GPIO按键识别

基于时间片轮询的单片机裸机系统

2023-11-29 14:33:36 1073 1

空空如也

空空如也

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

TA关注的人

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