数据结构-8-暴力匹配
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798//暴力匹配#include <stdio.h>#include <stdlib.h>typedef struct String //定义字符串结构体{ char* data; int len;} String;String* initString() //初始化字符串 { String* s = (String*)malloc(sizeof(String)); //为字符串开辟动态内存空间 s->data = NULL; ...
数据结构-7-循环队列
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105//循环队列#include <stdio.h>#include <stdlib.h>#define MAXSIZE 5typedef struct Queue { int front; int rear; int data[MAXSIZE];} Queue;Queue* initQueue() { Queue* Q = (Queue*)malloc(sizeof(Queue)); Q->front = Q->rear = 0; return Q;}void print ...
数据结构-6-栈
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384//栈#include <stdio.h>#include <stdlib.h>typedef struct Node //定义栈结点的结构体{ int data; struct Node *next;} Node;Node *initStack() //初始化栈{ Node *L = (Node *)malloc(sizeof(Node)); //为头结点分配动态内存空间 L->data = 0; //data初始化 L->next ...
数据结构-5-队列
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192//队列//往头结点前面入队 ,从头结点后面出队#include <stdio.h>#include <stdlib.h>typedef struct Node //定义队列的结点结构体{ int data; struct Node* next; struct Node* pre;} Node;Node* initQueue() //初始化队列{ Node* Q = (Node*)malloc(sizeof(Node)); //为头结点分配动态内春空间 Q-& ...
数据结构-4-双循环链表
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798//双循环链表#include <stdio.h>#include <stdlib.h>typedef struct Node //定义结点结构体{ int data; struct Node* pre; struct Node* next;}Node;Node* initList() //初始化头结点,创建链表{ Node* L = (Node*)malloc(sizeof(Node)); //为头结点分配动态内存空间 L -> data = ...
数据结构-3-双链表
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111//双链表#include <stdio.h>#include <stdlib.h>#define TRUE 1#define FALSE 0typedef struct Node //创建结点结构体{ int data; struct Node* pre; struct Node* next;} Node;Node* initList() //初始化链表{ Node* L = (Nod ...
数据结构-2-单循环链表
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192//单循环链表#include <stdio.h>#include <stdlib.h>#define TRUE 1#define FALSE 0 typedef struct Node //定义结点结构体 { int data; //数据 struct Node* next; //结构体指针,指向下一个结点}Node;Node* initList() //初始化结构体,创建头结点 { Node* L = (Node*)malloc(sizeof(Node)); ...
数据结构-1-单链表
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697//单链表#include <stdio.h>#include <stdlib.h>#define TRUE 1#define FALSE 0typedef struct Node //定义一个结点的数据结构{ int data; //数据 struct Node* next; //指向下一个结点的指针} Node;Node* initList() //创建链表头{ Node* list = (Node*)malloc(sizeof(Node)); // ...
ADC
HAL_ADC_Init()HAL_ADC_Init() 是 STM32 HAL 库中的一个函数,用于初始化 ADC 外设。通过此函数,你可以配置 ADC 的基本参数,如分辨率、数据对齐方式、扫描模式等。它是使用 ADC 外设之前必需的初始化步骤。
HAL_ADC_DeInit()HAL_ADC_DeInit() 用于反初始化 ADC 外设,将其恢复到默认的初始状态。这通常用于在不再需要 ADC 时禁用其工作,或者在配置 ADC 的其他工作模式之前调用,以清除之前的配置。
HAL_ADC_MspInit()HAL_ADC_MspInit() 是一个与底层硬件相关的函数,用于初始化 ADC 外设所需的硬件资源。这通常包括启用外设时钟、配置 GPIO 引脚(如果需要)、配置中断、DMA 设置等。此函数通常在 HAL_ADC_Init() 调用时自动执行。
HAL_ADC_MspDeInit()HAL_ADC_MspDeInit() 是与底层硬件相关的反初始化函数,用于恢复 ADC 外设的硬件资源,通常是在 HAL_ADC_DeInit() 调用时自动执行。此函数会禁用 ADC 外设所需的硬 ...
RT-Thread-PIN
1. 设置引脚模式 rt_pin_mode()
参数
说明
PIN_MODE_OUTPUT
输出
PIN_MODE_INPUT
输入
PIN_MODE_INPUT_PULLUP
上拉输入
PIN_MODE_INPUT_PULLDOWN
下拉输入
PIN_MODE_OUTPUT_OD
开漏输出
2. 设置引脚电平 rt_pin_write()
3. 读取引脚电平 rt_pin_read ()
4. 绑定引脚中断回调函数 rt_pin_attach_irq ()5.脱离引脚中断回调函数 rt_pin_detach_irq ()6. 使能 / 屏蔽引脚中断 rt_pin_irq_enable ()