- 博客(95)
- 资源 (40)
- 收藏
- 关注
原创 nrf52 在 nfc 引脚上启用 gpio功能使程序死在CONFIG_NFCT_PINS_AS_GPIOS位置
将nrf52的nfc引脚使能成为了UART功能,使程序死在CONFIG_NFCT_PINS_AS_GPIOS位置解决方法。
2022-06-29 08:44:48
755
原创 STM32——HAL库函数版——AD7656驱动程序
STM32驱动AD7656程序AD7656程序源码我采用的是 并行接口 进行AD7656模块与STM32L431RCT6进行通信一、AD7656特性:1.6个独立ADC2.真双极性模拟输入3.引脚/软件可选范围:+/-10V、+/-5V4.高吞吐速率:250KSPS5.低功耗:140mW(250KSPS,5V电源)6.高速并行、串行和菊花链接口模式7.高速串行接口:SPI 、QSPI、 MICROWIRE、 DSP兼容8.待机模式:最大315uW9.64引脚LQFP封装10.内置6
2021-08-16 16:12:54
3115
原创 STM32——库函数版——ADXL345驱动程序
加速度传感器ADXL345驱动程序完整工程链接:1.ADXL345简介ADXL345是ADI公司推出的基于iMEMS技术的3轴、数字输出加速度传感器。特点:1.分辨率高:最高13位分辨率。2.量程可变:具有+/-2g、+/-4g、+/-8g、+/-16g可变的测量范围。3.灵敏度高:最高达3.9mg/LSB,能测量不到1.0的倾斜角度变化。4.功耗低:40~145uA的超低功耗,待机模式只有0.1uA。5.支持标准的I2C或SPI数字接口,自带32级FIFO存储,并且内部有多种运动状态检测
2021-07-08 10:09:13
8205
10
原创 STM32——整形变量转换为字符变量并通过串口发送出去
STM32——整形变量转换为字符变量并通过串口发送出去串口发送函数:/*************************************************函数:USART1_TX_Byte功能:串口发送一个字节入口:一个字节*************************************************/void USART1_TX_Byte(unsigned char data){ USART1->TDR = data; while((USART1
2021-06-23 09:47:09
4397
原创 STM32——HAL版——串口发送字符串函数
STM32——HAL版——串口发送字符串函数1.串口发送一个字节数据/*************************************************函数:USART1_TX_Byte功能:串口发送一个字节入口:一个字节*************************************************/void USART1_TX_Byte(unsigned char data){ USART1->TDR = data; while((USART1
2021-06-23 09:35:15
6887
5
原创 STM32——HAL版——定时器ms和us延时函数
定时器做ms和us延时函数本文用的是STM32L461RCT6芯片定时器TIM2和TIM6挂载在APB1总线上
2021-06-17 17:50:39
8017
9
原创 C语言数组旋转问题(C笔记)
C语言数组旋转问题功能:将一个 4×4 的数组进行顺时针旋转 90 度后输出,要求原始数组的数据随机输入,新数组以 4 行 4 列的方式输出。#include <stdio.h>#include<stdlib.h>int main(){ int a[4][4],b[4][4],i,j; //a存放原始数组,b存放旋转后的数组数据 printf("请输入16个数:"); //输入一组数据存放到数组a中,然后旋转存放到b数组中 for (
2021-06-01 17:17:50
650
原创 C语言打印杨辉三角(C笔记)
C语言打印杨辉三角杨辉三角:每行的开端和结尾都是1,其余位置的每个数都等于它上方两数之和。每行数字左右对称,由1开始逐渐变大。程序实现1#include <stdio.h>#include<stdlib.h>#define N 31int main(){ int i,j,k,n=0; int a[N][N]; //定义二维数组a[N][N] while (n<=0 || n>=30) //控制打印的行数不要太大
2021-06-01 15:37:40
310
原创 C语言判断回文字符串(C笔记)
C语言判断回文字符串程序功能:输入一个字符串,判断其是否为回文字符串。所谓回文字符串,是指从左到右读和从右到左读完全相同的字符串。代码实现:#include <stdio.h>#include<stdlib.h>#include<string.h>int main(){ char s[100]; int i,j,n; printf("请输入字符串:"); gets(s); n = strlen(s);
2021-05-26 11:21:51
2990
原创 C语言删除字符数组中指定的字符(C笔记)
C语言删除字符数组中指定的字符程序功能:用户输入一组字符串和输入要删除的字符,最后输出删除后的结果。是通过数组元素的移动进行删除字符代码实现#include <stdio.h>#include<stdlib.h>int main(){ char s[80],c; int j,k; printf("请输入字符串:"); gets(s); printf("请输入要删除的字符:"); c = getchar();
2021-05-26 11:10:08
6604
5
原创 C语言向文件写入学生信息并读取显示出来
C语言向文件写入学生信息并读取显示出来代码功能:1.从控制台输入学生信息(姓名、年龄、学号和平均分),可以输入任意数目的信息数据。2.将输入的学生信息数据写入文件中进行保存,文件每行存储一条学生信息,姓名、年龄、学号、平均分以tab(\t)为分隔。3.学生信息保存成功都并读取出来进行查看。代码中包含的函数介绍:1.fopen()函数原型:FILE *fopen(const char filename, const char mode);函数功能:使用给定的模式mode打开filename所
2021-05-25 10:56:33
21122
11
原创 C语言输出菱形(C笔记)
C语言输出菱形通过for循环语句进行遍历,打印总行数和总列数相等的菱形。两种思维:1.从第一行开始遍历所有列2.从第一列开始遍历所有行程序是从第一行开始遍历所有列打印上半部分当前行与当前列的关系:(column+1)/2 - (i-1) <= j && j<= (column+1)/2 + (i-1)j>=(column+1)/2-(i-1) (column+1)/2-(i-1)为第i行左边的星号j<=(column+1)/2+(i-1)
2021-05-24 14:09:17
947
原创 C语言判断一个数是不是质数(C笔记)
C语言统计输入的字符串的长度程序功能说明:提示用户输入一个整数,对用户输入的整数进行判断是否为质数。是质数输出本身,不是质数输出所有真因子#include <stdio.h>#include<stdlib.h>int main(){ int n; //保存输入的整数 int i; int flag; //判断n是否是质数标志位,是质数flag=1,不是质数flag=0 printf("请输入要判断是否是质数
2021-05-21 16:49:55
2228
原创 STM32——库函数版——12864点阵显示屏驱动
12864点阵显示屏驱动我用的主控是STM32F103ZET6程序里面有两种发法:一个是并行发送数据,另一个是串行发送数据完整工程链接:12864完整驱动工程12864学习资料和取模软件链接:12864学习资料和取模软件引脚连接看led12864.h里面的设置程序运行效果图:1.并行发送数据效果图2.串行发送数据效果图程序如下:main.c#include "sys.h"#include "delay.h"#include "led12864.h"/*2020.11.20*
2021-05-21 16:05:34
9063
33
原创 C语言输入n个整数并计算它们的和(C笔记)
C语言输入n个整数并计算它们的和首先是输入要计算多少整数的和,在输入要计算的整数#include <stdio.h>#include<stdlib.h>int main(){ int n; //保存输入的整数 int sum; //输入的整数和 int current; //当前输入的整数 int j; printf("请输入要计算多少个整数的和 n >"); scanf("%d",&n);
2021-05-21 14:27:03
16885
原创 用C语言来统计文件中单词的个数(C语言笔记)
用C语言来统计文件中单词的个数#include <stdlib.h>#include <stdio.h>#include <string.h>#include <conio.h>//argc:统计运行程序时命令行参数的个数//*argv[]:存储每个参数的字符串指针,每一个元素对应一个参数int main(int argc,char *argv[]){ int ch,bian = 0,count = 0; char find[
2021-05-21 11:30:51
6927
原创 STM32——库函数版——超声波测距模块(HC-SR04)
HC-SR04 超声波测距模块超声波测距原理及方法一方法二方法三:在向Trig控制端发送触发信号后,一直等待到Echo引脚的响应后(变为高电平)并打开定时器计数直到Echo引脚变为低电平,关闭定时器,记录下计时时间,通过公式进行计算具体的距离。程序:定时器初始化tim.c#include "tim.h"#include "delay.h"#include "Printf.h"/*2020.11.16*///通用定时器 3 初始化void TIM3_Int_Init(u16 a
2020-12-15 15:55:22
3342
21
原创 STM32通过定时器捕获的方法驱动(HC-SR04)超声波测距模块
HC-SR04 超声波测距模块超声波测距原理及方法一方法二:在向Trig控制端发送触发信号后,通过定时器的输入捕获引脚抓取到Echo引脚上升沿,开启定时器计时直到Echo变为低电平,关闭定时器记录下计时时间,通过公式计算具体的距离。程序:定时器初始化:tim.c#include "tim.h"#include "delay.h"#include "Printf.h"/*2020.11.16*///通用定时器 5 初始化void TIM5_Int_Init(u16 arr,u16
2020-12-15 15:36:45
4292
13
原创 STM32——库函数版——超声波测距模块
HC-SR04 超声波测距模块一、基本工作原理1.主控板先向Trig控制端输入至少10us的高电平触发信号,2.该模块内部将发送出8个40KHz的方波并检测回波信号,3.一旦检测到有回波信号则Echo接收端输出高电平回响信号,高电平的持续时间就是超声波从发射到返回的时间。(回响信号的脉冲宽度与所测的距离成正比)4.公式:距离=高电平时间*声速(340M/S)/2二、HC-SR04图片三、驱动原理及程序方法一:在向Trig控制端发送触发信号后,等待Echo引脚响应后(上升沿或者下降沿)触发
2020-12-15 15:29:14
4129
原创 STM32——库函数版——RGB8x8全彩点阵程序
RGB全彩点阵模块程序先显示一下效果程序实现亮红,蓝,绿,紫,白,青,黄,七种颜色的爱心一下是展示四种颜色RGB全彩点阵模块原理图如下:RGB8x8点阵显示原理每一个灯都相当于一个独立的点,通过行列进行控制灯的位置,从而让灯进行亮色,通过595移位寄存器进行控制要亮的灯(74HC595是串入并出带有锁存功能移位寄存器.)。根据手册可知:1.数据在 SCK 的上升沿输入,在 RCK 的上升沿进入的存储寄存器中去。2.SER是一个串行移位输入寄存器。3.存储寄存器有一个并行 8 位的,
2020-11-29 20:00:44
5597
3
原创 十大排序算法——桶排序(C语言)
桶排序(稳定的排序算法)桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。基本原理把待排序序列中的数据根据函数映射方法分配到若干个桶中,在分别对各个桶进行排序,最后依次按顺序取出桶中的数据。适用于数据分配均匀,数据比较大,相对集中的情况。映射函数映射函数要根据数据情况合理的适用,最好可以达到每个桶中只有一个元素,使得时间复杂度最优,但是空间复杂度太高。假设
2020-05-18 16:29:10
2826
3
原创 十大排序算法——计数排序(C语言)
计数排序(适用于在一定范围内的整数排序,取值范围不是很大的情况下,效率快过时间复杂度为O(nlogn)的排序)计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。基本思想首先根据原数组的大小创建一个相同的新数组,用于存放原数组中计数完毕的数据;对于一个待排序序列中的元素X,计算待排序序列中比X小的数,假如有A个,就把X放在新数组的第A个下标的位置上
2020-05-11 16:25:21
854
原创 十大排序算法——归并排序(C语言)
归并排序归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序是一种稳定的排序方法。该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。基本思想先递归分组再合并相邻的两个组1.将一个待排序序列进行分组,分为左子数组和右子数组,对左右子数组进行
2020-05-11 11:25:00
361
原创 十大排序算法——希尔排序(元素交换法和数组元素移动法C语言)
希尔排序(元素交换法和数组元素移动法)希尔排序(Shell’s Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。基本思想首先第一趟排序是把一个待排序序列根据增量(增量就是两个元素位置的间隔)分割成若干个小组,然后对每个小组进行插入排序,第一趟排序完毕后;缩小增量再分割成若干个小组进行插入排序,直到增量为1时,即所有数据放在同一组中
2020-05-10 20:21:15
531
原创 十大排序算法——堆排序(C语言)
文章目录堆排序堆排序基本思想基本步骤大顶堆法小顶堆法参考文献:堆排序百度百科介绍:堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图堆排序基本思想将一个待排序序列构建成一个大顶堆,大顶堆的根节点就是此序列的最大值,然
2020-05-09 19:33:51
495
原创 十大排序算法----堆排序(最后一个非叶子节点的序号是n/2-1的推理)
堆排序(最后一个非叶子节点的序号是n/2-1的推理)可以分两种情形考虑:1.堆的最后一个非叶子节点若只有左子节点2.堆的最后一个非叶子节点有左右两个子节点堆的定义:大顶堆:arr[i] >= arr[2i+1] && arr[i] >= arr[2i+2]小顶堆:arr[i] <= arr[2i+1] && arr[i] <= arr[2i+2]完全二叉树的性质之一是:如果节点序号为i,在它的左子节点序号为2i+1,右子节点序号为2i+2
2020-05-09 19:31:23
2321
原创 十大排序算法——快速排序法【挖坑法、左右指针法、前后指针法和优化方式三路快排】(C语言)
文章目录快速排序法基本思想实施基本步骤选择基准值(关键字)key方式1.取头尾位置2.随机选取基准法3.三数取中法三种基准分治法1.挖坑法2.左右指针法3.前后指针法三种优化方式1.对于基准的选择按情况而定(取头尾位置、随机选取基准法、三数取中法)2.三路快排3.小区间优化可用插入排序快速排序法快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其...
2020-05-08 16:22:35
1305
原创 swap()函数,C语言中的使用
swap()函数#include<stdio.h>#include<stdlib.h>//数值交换函数void swap(int *a,int *b){ int temp; temp = *a; *a = *b; *b = temp;}void main(){ int a[2]={12,56}; print...
2020-04-24 16:04:38
8303
2
原创 产生随机数(rand()函数和srand()函数)的含义
rand()函数(产生随机数)在头文件: #include<stdlib.h>功能:返回一个[0,RAND_MAX]间的随机整数。其中RAND_MAX是定义在stdlib.h头文件中的一个常量。srand()函数功能:初始化随机数发生器,用以生成种子数,每次种子数应为整数,配合rand()函数使用。在调用此函数产生随机数前,必须先利用 srand()设置好随机数种子,如果未设...
2020-04-23 18:57:59
472
原创 mid=(left+right)>>1什么含义
mid=(left+right)>>1的含义右移运算符>>,运算结果正好能对应一个整数的二分之一值,这就正好能代替数学上的除2运算,但是比除2运算要快。mid=(left+right)>>1相当于mid=(left+right)/2...
2020-04-23 18:31:18
16046
2
原创 十大排序算法——二分插入排序法(C语言)
二分插入排序法直接插入排序方法:直接插入排序法比较着看可以加深印象原理按由大到小来说同直接插入排序一样,也是分有序序列和无序序列,将待排序的无序序列插入到有序序列当中。二分插入是把待插入数值先和有序序列的中间数值进行比较,如果比中间值大,就在中间值的左侧在找中间值进行比较,如果比中间值小,就在中间值的右侧在找中间值进行比较,直到找到合适的位置插入到有序序列中。C语言代码#inclu...
2020-04-21 20:46:52
5449
原创 n=sizeof(a)/sizeof(int)的含义(C语言)
sizeof(a)/sizeof(int)含义sizeof是求字节数的函数,计算小括号里的变量占内存多少单元,计算单位是字节数。。a如果是int,float,long就是4个字节,short就是2个字节,char就是1个字节,double就是8个字节。sizeof(int)就是求int型变量的字节数,也就是等于4。因为sizeof的优先级比除号/的高,所以先算sizeof后算/,最后赋值给...
2020-04-20 16:45:39
20079
1
原创 十大排序算法——插入排序法(C语言)
插入排序法原理:插入排序对排序的序列分为:有序序列和无序序列两部分。通过构建有序序列对无序序列进行排序,假设第一个数字为有序序列,其后的数字为无序序列,在无序序列中取一个数字与有序序列中的数字进行比较,找到合适的位置插入到有序序列中,依次循环直到无序序列的全部数字插入完毕。C语言代码#include <stdio.h>#include <stdlib.h>v...
2020-04-20 11:53:57
1116
原创 十大排序算法——选择排序法
选择排序法原理:假设首个元素为最大值,用i,j,k三个变量表示数组下标,i表示当前元素下标,j表示找到最大值或者最小值的元素下标,k表示每次循环后的最大值或者最小值的下标思路:假设首个元素为最大值或者最小值与其后的其他数值进行比较,如果后面的值有比当前值大或者小,就进行交换数值,依次循环进行排序。C语言代码#include<stdio.h>#include<stdl...
2020-04-19 19:41:23
459
原创 C语言——数据结构(线性,树形,图形结构等)
数据结构在学习数据结构之前我想先有一个大体的概念,所以在网上查了一些资料记录如下常见的数据结构1.线性结构2.树形结构3.图形结构4.集合一、线性结构(线性结构是一个有序数据元素的集合)常用的线性结构有:线性表,栈,队列,双队列,串。关于广义表、数组,是一种非线性的数据结构。常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图特征:1.集合中必存在唯一的一个"...
2020-04-19 11:13:49
7447
1
EFM8SB10F8G芯片驱动HC_SR04超声波驱动源码.rar
2021-10-28
用EFM8SB10F8G芯片驱动AHT20温湿度传感器keil5工程源码.rar
2021-10-28
W5500与GD32F303RET6驱动源码,修改了内部引脚注释部分
2023-08-21
GD32F303RCT6硬件SPI2驱动W5500模块
2022-10-03
stm32f103驱动max30102心率传感器模块
2022-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅