- 博客(30)
- 收藏
- 关注
原创 DMA+UART 发送/接收不定长数据
问题在于485发送时,当TBE置位,数据实际上还没传输完毕(根据某本51单片机所述,停止位只传了一半),这时要么延时,要么采用TC判断传输完成。while (len--) //循环发送所有字节// 发送一个字节数据// 发送完成判断。
2024-11-07 11:32:50
865
1
原创 tm1637
TM1637是带键盘扫描接口的LED驱动控制专用电路。显示模式(8段x6位),支持共阳数码管输出。键扫描(8x2bit),不支持组合按键。两线串行接口(CLK,DIO)。
2024-01-19 14:32:52
911
原创 红米9A root
https://github.com/HuskyDG/magisk-files/releases 或 http://miuiver.cn/?post=189。
2023-09-20 10:42:12
2834
原创 最小生成树算法Prim与Kruskal的证明
如图所示,(V1,V3)是图1中权值最小的边,除去顶点V3,及其相关边,得图2。易证图1的最小生成树,一定是图2的最小生成树连上V3所得。任意给定一个图2的最小生成树,如何要得到图1的最小生成树呢?(Vi,V3)选一个权值最小的连上就行,而(V1,V3)是图1中权值最小的边,一定也是(Vi,V3)中权值最小的边。故图1的最小生成树一定包含权值最小的边(V1,V3),证明完毕。
2023-08-24 09:57:57
126
原创 关于标志信息ZF、OF、SF、CF的理解
进/借位标志,最近的无符号整数相加/减后的进/借位情况,有进/借位时,CF=1,否则CF=0准确来说CF是用于判断无符号数的溢出的,CF为1,则发生溢出零标志,最近的操作数运算结果是否为0,若是,ZF=1,否则ZF=0符号标志,最近的带符号数运算结果的符号,若为负,SF=1,否则SF=0溢出标志,最近的带符号数运算结果是否溢出,若溢出,OF=1,否则OF=0。
2023-07-24 11:13:46
8334
3
原创 SSD1306与SH1106的区别
他认为SH1106与SSD1306在除了初始化的地方以外,其余无区别。而实际上因此要修改的地方不止于初始化代码,借这位的代码做一下演示。那为什么SH1106与SSD1306使用时会有不同?首先,参考这位的说法。
2023-06-29 15:39:11
5444
2
原创 补码计算的原理
首先,我个人认为,,与进制无关,进制只是数的表现形式而已x补x256))mod256所以−3十进制10000011二进制原码11111101二进制补码253十进制补码256−3−3mod256253mod256所以下面我以十进制为例,演示补码可以进行加法和乘法,其中-5,-30的补码是251与226之所以非要用十进制而不是二进制演示,我觉得十进制方便看,好理解而已显然补码进行四则运算是没有问题的。
2023-06-16 17:06:49
749
3
原创 图解设计模式笔记:单例模式
双重检查锁模式是一种非常好的单例实现模式,解决了单例、性能、线程安全问题,上面的双重检测锁模式看上去完美无缺,其实是存在问题,在多线程的情况下,可能会出现空指针问题,出现问题的原因是JVM在实例化对象的时候会进行优化和指令重排序操作。枚举类实现单例模式是极力推荐的单例实现模式,因为枚举类型是线程安全的,并且只会装载一次,设计者充分的利用了枚举的这个特性来实现单例模式,枚举的写法非常简单,而且枚举类型是所用单例实现中唯一一种不会被破坏的单例实现模式。 缺点:实例对象是随着类的加载而创建的。
2023-03-18 14:36:19
65
原创 图解设计模式笔记:适配器设计模式
及其子孙类都可以被适配。另外,对象适配器对于增加一些新行为非常方便,而且新增加的行为同时适用于所有的源。适配器设计模式有3种形式:类适配器模式、对象适配器模式、接口适配器模式(缺省适配器模式)。为一个接口提供缺省实现,这样子类可以从这个缺省实现进行扩展,而不必从原有接口进行扩展。对象适配器使用的是组合的方式,·所以。在Servlet中就使用了接口适配器模式。类适配器使用的是继承的方式,直接继承了。
2023-03-18 13:29:50
80
原创 图解设计模式笔记:迭代器模式(Iterator)
*意图:**提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。优缺点:迭代器模式优点 : 分离 了 集合对象 的 遍历行为;抽象出了 迭代器 负责 集合对象的遍历 , 可以让外部的代码 透明的 访问集合内部的数据;迭代器模式缺点 : 类的个数成对增加;迭代器模式 , 将 存储数据 , 遍历数据 两个职责拆分;如果新添加一个 集合类 , 需要增加该 集合类 对应的 迭代器类 , 类的个数成对增加 , 在一定程度上 , 增加了系统复杂性;
2023-03-18 12:17:55
123
原创 数据结构推荐
【【强烈推荐】深入浅出数据结构 - 顶尖程序员图文讲解 - UP主翻译校对 (已完结)-哔哩哔哩】 https://b23.tv/yw71NFJ
2022-07-01 17:40:10
214
原创 PTA 7-36 复数四则运算
#include<stdio.h>#include<math.h>typedef struct{ double real; double imag;}Complex;int print_complex(Complex num){ if(fabs(num.real)>=0.05 && fabs(num.imag)>=0.05)//实部虚部均非0 printf("%.1lf%+.1lfi",n..
2022-05-01 13:42:14
573
原创 PTA 7-35 有理数均值
#include<stdio.h>int yuefeng(int *fz,int *fm){ if(*fz==0) { *fm=1; } int fu=1; if(*fz<0) { fu=-1; *fz=-*fz; } for(int i=2;i<=*fz;i=i+1) { if(*fz%i==0&&*fm%i==0) { *fz=*fz/i; *f..
2022-04-24 13:55:52
349
原创 PTA 7-34 通讯录的录入与显示
#include<stdio.h>#include<string.h>int main(){ //输入 int N; scanf("%d\n",&N); char name[10][20],birth[10][20],sex[10][20],tel[10][20],phone[10][20]; for(int i=0;i<N;i++) scanf("%s%s%s%s%s",name[i],birth[i],sex[i],tel[i],phone[..
2022-04-24 12:58:47
2633
原创 PTA 7-33 有理数加法
#include<stdio.h>int yuefeng(int *fz,int *fm){ if(*fz==*fm) { *fz=1; *fm=1; } for(int i=2;i<=*fz;i=i+1) { if(*fz%i==0&&*fm%i==0) { *fz=*fz/i; *fm=*fm/i; i=1; } } return 0;}int main(){ int fz,fm,fz1,fm1,..
2022-04-24 02:20:44
471
原创 PTA 7-29 删除字符串中的子串
#include<stdio.h>#include <string.h>int main(){ char S1[81]="\0",S2[81]="\0",t[81]="\0",*p=NULL; gets(S1); gets(S2); int num2=strlen(S2); while((p=strstr(S1,S2))!=NULL) { strcpy(t,p+num2); *p='\0'; strcat(S1,t); } printf("%.
2022-04-24 02:01:45
988
3
原创 PTA 7-32 说反话-加强版
思路:读入字符串str,那么用output数组存储每个单词的首字母,及尾字母后一字母在字符串的下标。那么已知这两个数据便可以输出该单词。考虑到逆序输出的需要,逆序读取字符串。如字符串”#apple##“(#表示空格),共8个字符逆序读取读第1个字符#,不是尾字母后一个也不是首字母,output不变读第2个字符#,是尾字母后一个,下标6,则output={6}读第3个字符e,不是尾字母后一个也不是首字母,output不变...读第7个字符e,是首字母,下标1,则output={6,1}.
2022-04-24 01:13:15
678
原创 PTA 7-31 字符串循环左移
#include<stdio.h>#include <string.h>int main(){ //读入数据 int N,num=0; char str[101]="1234"; gets(str); scanf("%d",&N); num=strlen(str); //循环左移 N=N%num; char l_str[101]; strcpy(l_str,str+N); str[N]='\0'; strcat(l_str,st.
2022-04-23 22:48:20
107
原创 PTA 7-30 字符串的冒泡排序
#include<stdio.h>#include <string.h>int main(){ //读入数据 int N,K; scanf("%d %d",&N,&K); char str[N][11],t[11]; for(int i=0;i<N;i++) { scanf("%s",str[i]); } //冒泡排序法 for(int i=0;i<K;i++) { for(int p=0,p_next=1;p_..
2022-04-23 22:20:33
787
原创 PTA 7-28 猴子选大王 (20 分)
题目思路:标记淘汰猴子,在未淘汰猴子中循环数数,满三淘汰,当只剩一未淘汰猴,即选出猴王。#include<stdio.h>#include<math.h>int main(){ //初始化猴群 int n; scanf("%d",&n); int monkey[n]; for(int i=0;i<n;i++) { monkey[i]=1;//未被淘汰 } //选猴王 int num=n;//候选猴数 int i=0,j=0;//猴报的
2022-04-23 11:43:22
603
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人