- 博客(19)
- 收藏
- 关注
原创 串口通信协议的一些相关知识
RS232标准:两个设备通过RS232标准的DB9接口进行数据的收发,收发的数据通过电平转换芯片(例:MAX3232)转换至TTL电平或RS232电平(发送时TTL转RS232,接收时RS232转TTL);通过USB线与电脑收发数据(例:单片机连接电脑),设备A先将TTL电平通过电平转换芯片(例:CH340,CP2102)转至USB电平,再通过USB接口进行数据的收发,使用时须在电脑端安装相关驱动;常见的串口通信协议有:RS232标准,USB转串口标准,原生的串口到串口;相关的寄存器在手册25章。
2023-08-09 11:24:07 260 1
原创 GPIO的八种工作模式(个人理解)
直接从IO口进入,经过施密特触发器(滤波形的毛刺)得到稳定波形,直接进入到输入数据寄存器。直接从IO口进入,经过施密特触发器,直接进入到输入数据寄存器(未上电时默认为高电平)直接从IO口进入,经过施密特触发器,直接进入到输入数据寄存器(未上电时默认为低电平)直接从IO口进入,不经过施密特触发器,数据直接到AD/DA进入电压的数据操作。可输出低电平,无法输出高电平,需在外部添加上拉电阻。IO口输入输出会经保护二极管,让电压在工作范围内。可直接输出高或低电平。7、复用开漏输出模式。8、复用推挽输出模式。
2023-07-28 14:45:17 392 1
原创 C语言在不创建变量的情况下,交换两个变量的数据(面试题)
3异或5的值为 : 0000 0000 0000 0000 0000 0000 0000 0110。3的二进制数为: 0000 0000 0000 0000 0000 0000 0000 0011。5的二进制数为: 0000 0000 0000 0000 0000 0000 0000 0101。再用异或后的值(a)异或b(交换后的值即为原来的a),即可得到a(交换后的值即为原来的b);用异或后的值(a)再异或b原来的值,即可得到b(交换后的值即为原来的a);代码不难,需要捋捋思路。
2023-06-30 18:02:08 54
原创 C语言实现解决汉诺塔问题
命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。②:移动完后确保A柱里面只有一个圆盘,同时C是空闲,将最大的圆盘移动至C柱。柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。③:通过三个柱,再次进行移动,将次大的盘移动至C柱。次数公式:2^n - 1(其中n为圆盘的个数)。①:将n-1个圆盘通过空闲的B和C柱进行移动。(Tower of Hanoi),又称。创造世界的时候做了三根。
2023-06-25 23:35:13 57
原创 C语言递归函数练习
一个过程或函数在其定义或说明中有直接或间接 调用自身的 一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解, 递归策略 只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的主要思考方式在于:把大事化小。①存在限制条件,当满足这个限制条件的时候,递归便不再继续。练习一:接收一个整型值(无符号),按照顺序打印它的每一位。练习2:编写函数不允许创建临时变量,求字符串的长度。练习四:求第n个斐波那契数(不考虑溢出)练习3:求n的阶乘(不考虑溢出)
2023-06-25 12:37:01 41
原创 C语言实现猜字游戏
(注):生成随机数用到了rand和srand函数,并用事件戳进行随机。玩家输入的为1,即继续游戏,0为退出游戏。输入为其他显示:输入有误,请重试。2、 屏幕上显示游戏内部菜单选择。1、屏幕上显示开始菜单选择。3、获取玩家输入的命令。
2023-06-25 12:13:30 37
原创 C语言练习(函数版)
练习三:写一个函数,实现一个整形有序数组的二分查找。练习四:写一个函数,每调用一次函数,num自增。练习二:写一个函数可以判断一年是不是闰年。练习一:写一个函数可以判断是不是闰年。
2023-06-24 16:08:47 157 1
原创 C语言找两个数的最大公约数(辗转相除法)
若a%b 不为0,举例:a = 18;a%b = 1 余6;将余数赋值给b,将b的值赋值给a;再进行%(取余),如此循环,直至取余结果为0,b即为最大公约数。如果a % b = 0;那b就为最大公约数。
2023-06-22 15:10:20 52 1
原创 (C#)多个字符从两端移动,向中间靠拢练习
通过数组两端下标数据进行替换,在低位下标小于等于高位下标的情况下,进行循环,将数组1的数据一个个“搬”到数组2.再进行显示。
2023-06-22 10:54:56 48
原创 C语言二分查找算法(初识版)
法,是一种适用于大量数据查找的方法,但是要求数据必须的排好序的,每次以中间的值进行比较,根据比较的结果可以直接舍去一半的值,直至全部找完(可能会找不到)或者找到数据为止。按照常规想法,将k与数组中的每一个数进行比较,在相同的时候即为找到;如果让你从一组数里面找到对应的数字,你会怎么找?int k = 5;但是如果数组里面的数据很多呢?我们可以学习一下二分查找法。后面学习到再进行更新。什么是二分查找法呢?
2023-06-21 22:55:45 61 1
原创 C语言输入数,计算阶乘数的和
首先要清楚阶乘定义,所谓 n 的阶乘,就是从 1 开始乘以比前一个数大 1 的数,一直乘到 n,用公式表示就是:1×2×3×4×…×(b-2)×(b-1)×b=b!具体的操作:利用循环解决问题,设循环变量为 x,初值为 1,x 从 1 变化到 b;依次让 ret与 x相乘,并将乘积赋给 addret。① 定义变量 ret,并赋初值 1。③ 直到 x超过 b。
2023-06-21 14:59:37 202
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人