自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 动态库的创建(交叉编译)

动态库更加的灵活,静态库很大 库的所有内容都跟执行文件都链接在了一起,更加的保密,在交叉编译的时候不需要传递库的文件。2、编译动态库 arm-linux-gcc -shared -fpic xxx.c -o libxxx.so -I 头文件路径。4、 直接运行 gcc main.c -o main libxxx.a (也需要注意 -I库的路径 -i库的名字)1、源代码的实现(你要创建的动态库 xxx.c xxx.h)分别放到 相应的文件中。1、编译源代码 a.c a.h b.c b.h。

2022-12-23 17:05:03 1744 1

原创 Linux基础命令

etc/apt/sources.list 只是例举出了服务器的地址,至于这些服务器上面有哪些软件可以下载,肯定是不知道。/usr/lib/gnome-terminal/gnome-terminal-server 终端进程。虚拟机 --> 设置 -->硬件 -->网络适配器 -->桥接模式 -->复制物理网络状态(打勾)Ubuntu功能最强大的软件包管理工具,用于获取,安装,编译,卸载和查询软件包,以及检查软件包的依赖关系。用户名:密码:用户ID:用户组:用户的主目录:用户的shell。

2022-12-19 18:54:53 697

原创 shell-函数

return: 只能返回整数 0 成功 1 通用未知错误 2 无用shell 指令。函数中的局部变量 用关键字 local 声明 local val=“xiaowang”调用函数后直接利用 $?可以拿到返回的值 再次调用不行。要传入参数的话写在脚本名字的后面。echo : 直接将要返回的内容给打印出来。function 函数名 () {函数返回 : return echo。$* 显示所有的参数名。$2 显示第二个参数名。$1 显示第一个参数名。

2022-12-14 15:29:23 277

原创 shell-条件

符号和被检查的条件之间要留有空格 : if [ -f filename *** ]-ge exp1 >= exp2 为真。echo -n " ********* " 屏蔽回车。if [ string1 = string2 ] 两个字符串相等为真。if [ -n string ] 字符串不为空为真。if [ exp1 -eq exp2 ] 相等为真。if [ -z string ] 字符串为空为真。if [ -d file ] 文件为目录为真。

2022-12-14 10:07:18 319

原创 shell-参数变量

IFS=‘ ’ 修改输出参数的间隔 :换间隔符为空。$* 输入的参数的所有的名字。$@输入的参数的所有的名字。$1 输入的参数1名字。$2 输入的参数2名字。

2022-12-13 17:04:55 115

原创 shell语法-变量

bin/sh 特殊注释:告诉编译器后面紧跟的参数是用来执行本文件的程序的。2、变量前加$用来访问变量的内容 echo 命令输出内容。echo $变量 == echo “$变量”3、字符串内容中含有空格,需要用双引号括起来。read 变量 : 从键盘输入内容到变量中。1、所有的便令都是字符串并以字符串存储。echo ‘$变量’ == \$变量。5、= 左右两边不能有空格。

2022-12-13 13:42:02 90

原创 Linux静态库的创建

6、编译链接 gcc -o main main.c libfoo.a ( gcc -o main main.c -L. -lfoo )2、编译n个函数 gcc -c fun1.c fun2.c ....... -c 阻止编译器创建一个完整的程序。5、编写主函数包含 lib.h 调用 fun1.c fun2.c 中的库函数。1、创建n个库函数 fun1.c fun2.c .........-L(.) 告诉编译器在当前的(。4、将所有编译的库函数打包成一个大的库函数。

2022-12-12 21:27:02 203

原创 合并两个有序数组

【代码】合并两个有序数组。

2022-10-05 15:40:47 93

原创 删除数组中给定的指定元素

【代码】删除数组中给定的指定元素。

2022-10-05 15:38:18 134

原创 顺序表的创建

定义一个顺序表,采用的是数组加容量加大小 ,数组用动态开辟的方式来保存数据。初始化顺序表,将数组的那个指针指空。创建一个顺序表,来存放数据。

2022-10-05 15:34:35 4956

原创 旋转数组题

【代码】旋转数组。

2022-09-29 21:56:46 68

原创 消失的数字

的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?

2022-09-29 20:20:48 66

原创 单链表的创建(带头结点和不带头结点)

插入节点:如果是第一个节点那么就将头结点的首尾指针都指向这个结点 (判断条件可以是链表的长度,也可是首尾结点是否为空 是 head->next为不为空 ),如果不为空,尾结点的next指向新节点,让新节点成为尾结点。总结: 带不带头结点就看要不要多生成一个节点,头结点需要开辟空间,判断的时候就从头结点的下一位判断 : 若不带头结点,就生成一个头指针,将第一个节点赋值给头指针,打印链表的函数: 从链表的首节点开始打印的 若创建的是带头点的单链表 需要传入 head->next。创建带头结点的单链表。

2022-09-27 11:30:55 5237

原创 stm32i2c的解答

起始信号: 时钟线为高电平期间 数据线由高变为低停止信号:时钟线为高电平期间 数据线由低变为高时钟线为高电平时: 数据线为1位非应答 数据线为0位应答时钟线为高电平时 数据线要求稳定为高电平时钟线为低电平时 数据线可以随便...

2022-04-19 16:20:48 156

原创 stm32 超声波测距

发送是B11 接收是10超声波模块函数配置时钟 使能GPIO 和定时器配置GPIO输出结构体:定义结构体配置 模式推挽输出,引脚,速度初始化结构体配置输入结构体:配置 模式上拉输入 引脚PB10 速度 吴初始化输入结构体定时器模块定义定时器配置定时器结构体配置: 分频系数 1分频 计数模式 向上计数 重装载值 100 预分频 72-1初始化结构体使能定时器配置定时器中断结构体 : 定时器 , 溢出方式,使能配置中断结构体NVIC...

2022-03-27 22:23:45 735

原创 stm32串口中断的接收

利用串口使得led点亮利用之前的串口函数加上NVIC的中断函数结构体定义结构体定义 配置抢占优先级的组别配置NVIC串口中断的结构体:中断的通道,配置抢占优先级和子优先级 使能CMD结构体初始化还有需要配置中断串口的配置: 串口 接收数据寄存器非空标志位 使能在main函数中写中断接收函数中断服务函数{判断得到标志位创建变量接收数据判断变量字符控制相应的数据}...

2022-03-26 10:57:19 2603

原创 stm32串口的学习

起始位为0 数据开始发送数据的长度为5678位:校验位:奇校验: 数据中的1的个数+上校验位中的个数为计数,如果数据中1的个数为基数那么校验位为0,如果数据位中的1的个数为偶数,那么校验位变为1,总之是使得所有的1的个数为1就好了,然后校验位去凑串口的配置:配置是照片那个:GPIO时钟,串口的时钟,引脚复用的时钟配置GPIO结构体配置串口的结构体串口的发送...

2022-03-26 10:37:44 1380

原创 stm32感应灯

正在上传…重新上传取消

2022-03-24 20:09:29 779 1

原创 stm32输出比较PWM

OC 输出比较IC 输入捕获CNT:时机单元 的计数器

2022-03-23 19:50:02 2745

原创 stm32定时器定时中断

主频72MHz:最大计时59.65s基本定时器:基准时钟 预分频器 计数器 计数器与自动重装载寄存器进行比较 相等时计时时间到 进行中断相应主模式触发DAC 硬件自动化通用定时器:计数模式不只一种:向上计数:计数器累加到自动重装载模式的值后进行中断相应向下计数:自动重装载模式中的值向下减到0后进入中断中央对齐: 向上计数到自动重装载值中断产生向下自减到0后进行中断的产生定时器级联:初始化TIM3(使用主模式)把更新事件映射到TRGO上 选择TIM2 对应的就是

2022-03-20 20:06:15 7967 1

原创 stm32 中断处理

中断:有优先级和中断嵌套中断分配:控制中断的优先级(NVIC)响应优先级: 优先进行排队处理(上个事件完成后,来进行处理你)抢占优先级:优先处理,即使正在处理别的事件抢占优先级和响应优先级进行了分组,数字越低优先级越高引脚电平变化:触发外部中断相同pin不能触发指的是PA1和PB1不能同时触发,而PA1和PA2可以同时触发外部中断:对射式红外传感器 DO接一个GPIO口就行根据DO的电平的变化来进入中断然后让计数++,再然后让oled显示屏显示数字...

2022-03-16 14:55:39 4918

原创 STM32GPIO输入 和C语言

上拉和下拉电阻:杆子和弹簧的模型,杆子是输出的电压值,弹簧是上拉或者下拉电阻,输出是根据上拉和下拉电阻的相对值来进行确定的,上拉下拉电阻为0则是短路的状态,如果电阻为无穷大则是断开的状态输入一般是外设的输入,外设通过可变电阻的阻值将外界的模拟量转化为数字信号,...

2022-03-13 09:44:11 352

原创 stm32led,蜂鸣器,光敏电阻GPIO输出

Ctrl+shift+n 快速添加文件夹GPIO操作:3个步骤使用RCC开启GPIO时钟 使用GPIO_init 初始化 GPIO 使用输出或输入的函数控制GPIOrcc函数: 找到RCC_AHB RCC_APB2 RCC_APB1GPIO函数: GPIO_init() 结构体赋值 GPIO_struct()结构体赋初值 GPIO_init() 还有8个读写函数第一步: 调用RCC使能函数使能GPIO 使能函数(GPIOA ENABLE)第二步:调用GPIO...

2022-03-12 16:05:40 1924

原创 STM32笔记GPIO

stm32 3.3v 供电RCC 复位和时钟控制: 使能时钟其他外设才能工作,目的是为了降低功耗GPIO: led,按键的使用TIM : 定时器,pwm波形,画波形ADC:RTC: 时钟时钟PWR : 可以睡眠 省电IWDG 和WWDG 看门狗 保证正常运行DMA CPU的小秘书,搬运数据:...

2022-03-11 09:31:05 179

原创 第四届蓝桥杯

用 extern 进行数组变量的跨文件操作时 需要定义数组的大小24c02 iic的书写 用到的是0xa0和 0xa1 电位器(dac输出)数据的转换 0-127 对应的0-5v开关设备设置标志位,根据数据来进行相应的开关不需要标志位的设置#include <STC15F2K60S2.H>#define uint unsigned int#define uchar unsigned char#include "ds1302.h"#include "iic.h"uint s

2022-03-03 17:50:10 86

原创 第五届试题

矩阵按键的处理利用矩阵键盘进行按键数值的处理,需要设置标志位来判断按键是否按下if 和else if 的使用 可能会导致现象显示的不是很好#include <STC15F2K60S2.H>#define uint unsigned int#define uchar unsigned char#include "onewire.h"uint wendu;uchar num,tmin=20,tmax=25;uchar shezhi=0;uchar qujian;bit.

2022-03-02 11:21:00 52

原创 第六届试题

需要根据题目挖掘有多个界面的处理,中断服务函数中的间隔采集处理,led的闪烁 利用标志位来打开和进行闪烁#include <STC15F2K60S2.H>#include "absacc.h"#include "ds1302.h"#include "intrins.h"#include "onewire.h"sbit S7=P3^0;sbit S6=P3^1;sbit S5=P3^2;sbit S4=P3^3;bit flag=0,LED_kai=0;unsigned

2022-02-28 21:35:48 72

原创 第七届试题总结

小细节总结: 改变ds1302的里面的数值时,要重新调要xie函数,因为有写保护界面的切换都要用到标志位:例如在时钟显示界面按下S4显示温度,那在其他界面就不显示温度,就要一个标志位,温度的显示和温度的不显示也要一个标志位#include <STC15F2K60S2.H>#include "intrins.h"#include "ds1302.h"#include "onewire.h"#define uchar unsigned char#define uint unsi

2022-02-26 09:45:42 109

原创 数码管的亮灭

利用定时器来让标志位进行翻转,然后根据标志位让数码管进行亮灭#include <STC15F2K60S2.H>unsigned char count;unsigned smg_bit=1;void select138(unsigned char n){ switch(n) { case 4: P2=(0x1f&P2)|0x80; break; case 5: P2=(0x1f&P2)|0xa0; break; case 6:

2022-02-21 20:58:24 2714

原创 第十届蓝桥杯单片机

注意事项:led的控制需要先进行与操作后再进行赋值,0x03是读取电位器上的电压,0x43 dac功能是 写入数据数码管的开关,将它与上其他的标志位进行控制#include <STC15F2K60S2.H>#include "iic.h"#define uchar unsigned char#define uint unsigned intuint date,count,dat,volt;bit jiemian,ad_mode,led_mode,smg_mode;unsig

2022-02-20 19:51:13 452

原创 第十一届蓝桥杯

主要是按键处理的地方; 独立按键的处理不需要像矩阵按键那样每一个按键编写一个数字标志位:如果每个按键有两种状态的话,编写标志位,按键只需要对标志位进行处理就行,例如 让标志位的状态进行翻转按键处理函数就根据标志位来进行处理,这里值的注意的是参数合理性的保存#include <STC15F2K60S2.H>#define uchar unsigned char #define uint unsigned int#include "iic.h"#include "o..

2022-02-19 21:02:11 7494

原创 蓝桥杯第十二届经验总结(第一次写)

DS18B20的读取,可以直接写在总线的c程序中。读取小数该如何处理,单总线底层文件延时的改写 *4 ,最后一个延时 为70-100矩阵键盘的使用:按键按下进行变量的赋值处理,也要进行消抖处理(独立按键也一样)iic总线:dac的采集,光敏电阻,...

2022-02-14 17:34:25 419

原创 超声波测距

超声波装置有两个引脚,发射和接收发送超声波信号,当遇到障碍时返回超声波就接受引脚接收,收到信号后,接收引脚变为低电平在返回过程中,可以由定时器来进行计数用于知道时间的产生计算公式 time *1.7 /100 距离为厘米步骤: 变量定义引脚 P1^0 发送数据 P1^1接收数据定义发送脉冲:发送8个40Khz的脉冲 : 定义一个延时为12us的延时函数 打开TR 延时函数 关闭TR 延时函数 循环8次对数据进行分析:用到定时器,可以用定时器1,也可以用定时器0 不...

2022-02-04 19:13:29 1176 1

原创 智能照明控制器(基于24c02和光敏电阻的使用)

需要用到的函数和变量来实现相应的功能:数码管显示一般只直接显示数据,所以先要将数据给处理好调用相关的函数将光敏电阻传感器产生的值放入到一个变量中进行数据的分析函数:根据光照强度点亮相关的led灯,等级打开24c02定义按键函数: 按键1 实时显示数码管的值,然后将光敏电阻产生的数据放入到24c02的存储器中按键2 显示 24c02中的数据主函数while中 一直判断一直显示...

2022-02-03 20:44:10 838

原创 24c02存储器(iic通信协议)

2kbit 的eeprom存储器设备地址:0xA1是读操作 0xA0是写操作写操作:需要写入地址和数据,地址用来存放你这个数据放到哪里的eeprom有页写操作:24c02中有页写缓冲器,一次性可以写入8个字节,然后由缓冲器再次写入到eeprom中去,值的注意的是,每接收完一个数据后,地址会进行自动加1写字节:参数有地址 和数据iic初始化iic写入设备的的地址等待应答iic写入要存储的数据的内存地址等待应答iic写入数据等待应答iic终止信号读字节:读取地

2022-02-01 21:22:42 2509

原创 iic总线的应用程序(电位器和光敏电阻)

调用数码管显示的函数调用iic协议来读取ad转换芯片的数值初始化:模拟iic的时序开始写入地址:写入ad转化芯片的地址,告诉它单片机要与它进行通信(0x90写入设备地址),(0x91读取设备地址)等待应答:写入地址: 写连接ad转换芯片的地址等待应答:终止iic协议:数码管显示()初始化 iic写入地址:这次是写入读的地址 0x91 设备要读取它的信息等待应答:创建变量接收读取的数据终止应答: 写入1位停止应答终止iic协议:数码管显示:按键处

2022-02-01 18:20:22 993

原创 IIC总线的一些小知识

时钟线: SCL 数据线: SDA空闲状态: 两根线都是高电平数据的传输: 起始信号: 时钟线SCL为高电平 ,数据线SDA由低变高终止信号: 时钟线SCL为高电平,数据线SDA由高变低iic在起始信号后,接下来是写入设备的地址,告诉设备我要与你通信IIc总线程序设计流程:起始信号: 模拟时序的开始写入地址: 写入的是ad转换芯片的地址,告诉设备我要与你通信等待应答: 等待设备的应答终止信号:停止模拟时序起始信号:模拟时序的开始写入地址:写入设备地址,我要读取你寄

2022-02-01 14:17:23 4240

原创 NE555定时器

基本原理:低电平触发端:TRIG 高电平触发端:THR两者的电压值小于参考电压时,即U。=1 放电管截止两者的电压值大于参考电压时,即U。=1 放电管导通蓝桥杯板子上是一个信号发生电路 通过继电器RB3来改变输入信号的频率蓝桥杯555定时器的考核:测量它产生的一个频率:测量原理: 将输出端与定时器T0的中断的引脚进行了短接,那么我们便可已利用来一个信号产生一次中断,那么测量1Hz,就是一秒钟产生了多少个信号,那么我可以用一个定时器来收集产生的信号,设置好初值,来一个信号我就进

2022-01-28 15:26:26 3045

原创 DS1302时钟(电子钟)

DS1302中有两个寄存器:日历时钟寄存器,和静态RAM存储器DS1302中的寄存器一共有8个控制的字节单元,每个单元有8个字节,每个单元分别对应不同的内容地址 ,输入的地址不同,那么存入的数据就会有所不同(一个萝卜一个坑)值的注意的是:写和读的内容操作地址只差一位,还有就是,打开定时器对应的地址写入对应的数据或者读取对应的寄存器中的数据的话,最先开始要对第8个单元进行操作(输入0x00为写,0x01为读) ,第8个单元的地址为0x8e(写),0x8f(读)。写入数据0x00表示可以操作寄存器.

2022-01-27 21:26:00 1479 1

原创 DS18B20温度转化

程序设计流程:复位 写入命令字 : 0xcc (跳过ROM指令), 0x44(开始温度转换)跳过命令字:因为DS18b20是单总线设备,而单总线可以挂载很多的设备,ROM是用来存放设备的id号。延时700~900ms 等待温度转换完成复位 写入命令字: 0xcc(跳过ROM指令),0xbe(读取高速暂存器,一共有9个字节)读取高速暂存器的0字节和1字节(即LSB和MSB)获得温度数据复位,读取操作结束。整合数据: 将LSB和MSB整合为1个16位的数据判断数据符号 为正还是为

2022-01-27 18:12:39 3288 1

空空如也

空空如也

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

TA关注的人

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