- 博客(17)
- 收藏
- 关注
原创 STM32F03C8T6 MPU6050 标准库
STM32F103C8T6, 使用标准库, 移植野火MPU6050 驱动, 解决了IIC 总线即使复位也无法解决的的 BUSY 问题。
2021-10-10 00:50:32
1292
原创 2021-07-08
矩阵键盘驱动设备原理引脚与宏矩阵键盘初始化列数据分析扫描函数按键数据接收中断函数效果按键时长测量方法猜想后记设备stm32103c8t64*4矩阵键盘杜邦线8根原理利用外部中断,识别按键的按下动作在识别按下按键后, 再去快速分析具体的按键具体的按键识别后, 就可以再进行时长的检测(未做)(画了一个超级简图)绿色接到单片机的输出引脚, 配置为推挽模式, 电平配置为高电平。黑色线对接到单片机的输入引脚,每个引脚配置为下拉输入, 引脚的中断设置为上升引起中断。当按键按下的时候,
2021-07-08 01:51:11
491
原创 ansible 使用记录 1 在contos下安装
1、须知所有操作均在下方链接教程指导下完成。http://www.ansible.com.cn/docs/intro_getting_started.htmlAnsible默认通过 SSH 协议管理机器. 在本记录中,SSH 链接是通过SSH-KEYS 完成。关于SSH 通过密钥链接在网上有很多教程,也会在下一部分讲述我的经历。2、安装1、根据自己系统在链接文档的安装教程中选择安装方式。我使用的系统是centos 8.2。 根据介绍,所有我选择使用系统的软件包管理器。yum安装。通过 Yu
2020-11-26 11:37:37
147
原创 C语言错误处理
出错处理头文件#include <assert.h>#include <errno.h>#include <setjmp.h>1、#include <assert.h>使用assert() 函数 void assert( scalar expression);a、参数类型为 scalar (标量) 标量代表原子类型。如 int 、char 、 等非复合类型数据。此链接详细解释了标量和复合类型 http://c.biancheng
2020-10-26 14:33:53
321
原创 Mysql C API 简单查询
// 源程序, 查询建立在已有的数据库 mytestbases。并需要输入密码 1 #include <stdio.h> 2 #include <string.h> 3 #include <mysql/mysql.h> 4 7 #pragma comment(lib, "libmySQL.lib") 8 9 int main() 10 { 11 MYSQL mysql; 12 MYSQL_RES *res; 13
2020-10-21 15:24:48
307
原创 C语言 typedef 和define
1、typedeftypedef 声明提供了一个方式去声明标识符的别名。用来替换一个复杂的类型名。 typedef int int_t, int_arr[20]; // 声明int_arr 是int[20] 的别名 // 声明 int_t 是int 的别名typedef char char_t, *char_p, (*fp)(void); // 声明 char_t 为char 的别名 // 声明 char_p 为 cha
2020-10-19 23:18:25
157
原创 redis 菜鸟教程中脚本笔记
1、 菜鸟教程地址 https://www.runoob.com/redis/redis-scripting.htmlRedis 脚本使用 Lua 解释器来执行脚本。 Redis 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL。EVAL//代码1redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]redis 127.0.0.1:6379> EVAL "return {KEY
2020-09-17 19:49:00
204
原创 数据结构时间复杂度
算法: 算法是对特定问题求解步骤的一致描述。是指令的有限序列,其中一条指令代表一条或者多条操作。时间复杂度: 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作 :T(n) = O(f(n)),它表示随问题规模n增大,算法执行时间的增长率和f(n)的增长率相同,称做算法的渐进时间复杂度,简称时间复杂度。时间复杂度有 常量阶 O(1) , 线性阶O(n) , 平方阶O(n的平方), 对数阶O(log n ) , 指数阶O(2的n次方)等。计算算法的时
2020-09-13 17:54:34
360
原创 C 语言 储存类型
声明说明符分为三类存储类型 auto 、static 、 extern 、 register如果要加存储类型,必须将存储类型放在声明的最前面。而且声明中只能出现一种存储类型。类型限定符 const 、 volatile 、 restrict类型说明符 void 、char 、int 、long、unsigned、signed、float、double 类型说明符可以组合使用。这些单词出现的顺序并不重要。结构体、联合和枚举的说明是类型说明符 。 typedef 创建的
2020-09-04 22:47:08
393
原创 UNIX 高级编程学习记录-概述
基本信息1、程序程序是一个存储在磁盘某个目录上的可执行文件,内核使用exec函数将程序读入内存,并执行程序。2、进程进程是程序执行的实例 ,用于控制进程的有3个主要的函数。 fork() 、 exec() 、 waitpid()exec函数有7种变体。但它们总称为exec函数。3、线程通常情况下,一个进程只有一个控制线程。也可以多个控制线程可以充分利用多处理器系统的并行能力。一个进程内所有的线程共享同一地址空间、文件描述符、栈以及与进程相关属性。因为它们能访问同一存储区,所以各线程
2020-09-01 14:24:47
209
原创 数据类型转换
C语言只能处理同种类型的赋值、计算。当类型不匹配时,会自动进行类型转换。十进制整数常量类型C语言中常量默认为有符号的,并且根据值处于的范围默认为相应的类型。如常量 12, 默认为int常量 2147483647 默认为int; (4个字节有符号整型表示的最大数值)常量 2147483648 超出了int 最大存储范围 默认为long int ;其存储类型是 int 、 long int 、 long long int 中能表示该数的最小类型。同时我们可以定义常量的类型。整数
2020-08-21 00:22:25
254
原创 C语言 位运算的简单使用
位运算符1、C语言提供了6个位运算符,这些运算符用于对整数数据进行位运算。有移位运算符(左移位 << 右移位>>)、按位求反 ~、按位与 & 、按位异或 ^、按位或 | 。移位运算符以下表示4个字节32位的无符号整型a = 00000000 00000000 00000000 00000011 表示十进制 a = 3如果 a >> 1 00000000 00000000 00000000 00000
2020-08-14 23:52:20
447
原创 C语言结构体,内存对齐
1、为什么要内存对齐许多计算机系统对基本数据类型的合法地址做出了一些限制,要求某种类型对象的地址必须是某个值K(通常是2,4,8,或16)的倍数。这种对齐限制简化了形成处理器和内存系统之间接口的硬件设计。(来源于计算机操作系统第一部分,程序结构和执行)其中详细解释参考大神博客https://blog.youkuaiyun.com/lgouc/article/details/82354712、内存对齐方法1、利用默认规则例1://代码1 共占用 2 * sizeof(int) 个字节struct te
2020-08-09 23:49:12
158
原创 C语言 time 函数使用
C语言time 函数使用time函数需要包含头文件 #include <time.h>gmtime() 和localtime() 函数原型关于时区可参考以下链接百度百科https://baike.baidu.com/item/%E6%97%B6%E5%B7%AE/1305648?fr=aladdin时间网http://www.shijian.cc/shiqu/tm *gmtime( const time_t * _time) //获取世界标准时间格林威治时间 UTC
2020-08-02 19:07:09
1129
原创 指针学习
基本知识主要来源为C++ primer 第六版内容关于两个问题:1、数组的指针表示方法 int a[10]; int (*ps)[10] = &a; // int (*)[10] int* ps1 = a; // int *如果将(*ps)[10] 改为(*ps)[20],会导致错误:不能将 “int ()[10]" 类型的值分配到 "int ()[20]” 类型的实体".将ps1 = a 更改为ps1 = &a,同样会出错int (*)
2020-07-24 19:14:25
263
原创 C++ 输入交流
cin 对象使用输入数字输入字符cin:cin.get() 和cin.getline()string类输入数字 int num; cin >> num ; 运行后,按照提示输入单个字符,按下Enter键后,输入的数据和换行符进入输入缓冲区。cin对象根据输入需求,从输入缓冲区中提取数字,如果遇到其他非数字字符,则输入结束。**代码:**int main(){int i= 0 ;cout << “int 类型字节为 :” << sizeof i
2020-07-19 20:09:23
291
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人