自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 方舟计划——智能夹取小车(电控)

一个带夹取和升降功能的小车的电控程序编辑笔记

2023-07-18 22:16:32 810 1

原创 LCD屏幕

目录LCD驱动原理 808时序操作​编辑LCD驱动芯片操作设置x、y的起始和结束坐标​编辑 LCD基本驱动实现 字符显示 FSMC(使用FSMC模拟8080时序,可以提高屏幕的刷新率) FSMC时序模式 FSMC相关寄存器LCD初始化结构体​编辑初始化步骤 FSMC模拟8080时序的接口函数的编写​编辑 硬件连接绘图函数 /

2023-07-09 19:47:48 596 1

原创 Linux——进程间通信

共享内存是一种在多个进程之间共享数据的机制。它允许多个进程访问相同的物理内存区域,从而实现高效的数据交换和通信。使用共享内存可以避免进程之间频繁地进行数据复制,而是直接读取和写入共享内存区域,从而提高数据传输的效率。下面是使用共享内存的基本步骤:shmget()shmget()shmget()shmat()shmat()shmat()shmdt()shmdt()shmctl()shmctl()需要注意的是,使用共享内存时需要进行适当的同步和互斥,以确保多个进程之间的数据访问的正确性和一致性。

2023-06-20 20:45:17 646 1

原创 LINUX——多线程编程

【代码】LINUX——多线程编程。

2023-06-17 22:14:40 114

原创 标准C库使用

目录一、概述二、用法操作a、strcmpb、strtokc、fgets​编辑一、概述#include <string.h> 是C语言中的一个预处理指令,它用于包含头文件 "string.h" 到程序中。"string.h" 是标准C库的一个头文件,提供了各种用于处理字符串的函数和宏。通过在程序开头包含 #include <string.h>,你可以使用在 "string.h" 头文件中定义的函数和宏,例如:字符串操作函数,如 strcpy、

2023-06-10 19:37:23 624

原创 LINUX——进程控制

在Linux系统中,进程控制是指通过系统调用和相关函数来创建、管理和终止进程的过程。以下是一些常用的进程控制相关的系统调用和函数:fork():用于创建一个新的子进程,使得父进程和子进程都从调用fork()的位置开始执行,但是在父子进程中返回的值不同。返回值为0表示当前进程为子进程,返回值大于0表示当前进程为父进程,返回值为-1表示创建子进程失败。exec():用于在当前进程中执行新的程序。exec()函数族包括execve()、execvp()、execl()等,它们用于不同的执行方式和参数传递方式。

2023-06-10 17:31:32 542

原创 LINUX——C语言程序与文件I/O

读取到的字符串会在末尾自动添加 '\0',n 个字符也包括 '\0'。也就是说,实际只读取到了 n-1 个字符,如果希望读取 100 个字符,n 的值应该为 101。

2023-06-08 09:25:10 275 1

原创 STM32操作系统FreeRTOS学习——基于hal库

在 FreeRTOS 中,定义变量的时候往往会把变量的类型当作前缀加在变量上, 这样的好处是让用户一看到这个变量就知道该变量的类型。比如 char 型变量的前缀是 c, short 型变量的前缀是 s, long 型变量的前缀是 l, portBASE_TYPE 类型变量的前缀是 x。还有其他的数据类型,比如数据结构,任务句柄, 队列句柄等定义的变量名的前缀也是 x。如果一个变量是无符号型的那么会有一个前缀 u, 如果是一个指针变量则会有一个前缀 p。

2023-06-02 09:32:22 7310 4

原创 MDK5使用技巧

显示空格tab用四个空格代替 结构体类成员的提示函数参数提示根据字符提示相关关键字(3个)回车和tab进行对相关关键字补充语法检测 重新安装mdk后,把这个文件放进去,之前的配置就会一样 用来对代码进行整理,对齐(根据{}对齐)

2023-05-17 22:14:25 519

原创 PWM的多路输出

STM32 的定时器除了 TIM6 和 7为普通定时器。其他的高级和通用定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4路的 PWM 输出(每个通道输出一路),这样,STM32 最多可以同时产生 30 路 PWM 输出!GPIO_PinAFConfig为复用功能函数,将GPIO6、7、8、9复用作定时器4通道1、2、3、4的输出。// 输出比较复用引脚映射到TIM4。以下为一个定时器多个通道输出PWM。

2023-05-14 11:50:56 1289

原创 GPIO的八种模式和复用功能理解

STM32Fxx系列单片机的GPIO引脚可以配置为浮空输入(Input Floating)、上拉输入(Input Pull-up)、下拉输入(Input Pull-down)、模拟量(Analog)、开漏输出(Output Open-drain)、推挽输出(Output Push-pull)、复用开漏(Alternate function open-drain)输出和复用推挽(Alternate function push-pull)输出等八种模式。复用开漏输出和(普通)开漏输出的道理是一样的。

2023-05-14 11:07:45 4723

原创 C语言学生管理系统(链表)

#include<stdio.h>#include<stdlib.h>#include<string.h>struct student{ int num; char name[10]; int grade;};struct node{ student date; node *next;};//typedef struct node node; //把struct node 定义为.

2022-01-22 16:56:10 632

原创 C语言/结构体题目

编写C语言代码,实现以下功能: 有N名学生,每个人的信息包括学号、姓名和语文、数学、英语、平均分等内容(用结构体表示 ),输出平均分排名倒数第2的学生信息。 思路:先定义一个结构体student,内包括各个信息因为是多个学生,定义一个student数组定义数组时使用动态内存分布,实现让用户自己输入学生的数量自定义一个input函数实现对每个数组内容的赋值(注意要用指针,要理解结构体数组传值得格式)最后用冒泡算法排序数组位置,方便找到平均分倒数第二的学生#i...

2021-12-18 12:49:56 862

原创 字符串的for输入

#include<stdio.h>int main(){ char s[100]={0}; int count=0,x=0,m=0; for(x=0;x<100;x++) { scanf("%c",&s[x]); count++; if(s[x]=='\n') { break; } } for(m=0;m<coun.

2021-11-17 15:38:33 1968

原创 数组内数字的位置变化

//写复杂代码的时候不要太赶,不然逻辑混乱缺漏#include<stdio.h>void jugde(int b[],int n){ int i; int left[100]={0}; //1.数组的设置要记得初始化化 int count1=0; int right[100]={0}; int count2=0; for(i=0;i<n;i++){ if(b[i]%2!=0){...

2021-11-16 23:14:21 848

空空如也

空空如也

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

TA关注的人

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