git知识总结
- Date:2024-07-03
Time:15:19
Subject: CS
Tags: #git
[[2024-07]]
交叉内容
[[git命令#- Date 2024-07-03]]
git工作区域与文件状态
三个区域
工作区
工作区提交后回到暂存区,确实就是文件管理器看到的,编辑的区域,正常使用(操作)的区域
暂存区
保存即将提交到git仓库的内容,临时存储
可以先修改一部分,放到暂存区钟,再统一提交commit
本地仓库
git init 的仓库,保存了项目历史
文件状态
未跟踪,新创建,git还没管理,
未修改,管理起来的,但是没有修改的文件
已修改,已经修改了的,没暂存
已暂存,放到暂存区的文件
.gitignore 忽略文件
把文件加入到里面,那么就会忽略这个文件
假如已经加到版本库中,那这个文件就不起作用了,需要先从版本库删除中删除 git rm --catched 本地不删除,但是暂存和版本库都删除
123456*.txt , *.xls 表示过滤某种类型的文件target/ :表示过滤这个文件夹下的所有文件/test/a.txt ...
git命令
- Date:2024-07-03
Time:15:35
Subject: CS
Tags: #git
[[2024-07]]
添加和提交文件
git status 查看文件状态
git add xxx 文件移动到暂存区,可以加上通配符,文件夹,如文件夹所有 .
git commit -m "xxx" 文件提交到仓库
git log 查看提交记录 --oneline 简单版显示记录
回退reset
参数的区别
git reset --soft xxxx xxx为版本id
查看差异git diff
可用于查看版本之间差异,各个区之间差异,或者分支之间差异
HEAD 表示最新的版本
~ 或者 ^ 表示为上一个版本,如 HEAD~2 前两个版本
删除文件
rm之后,还需要在暂存区删除,也就是再add一次
推送-拉取
push pull 拉去和推送,对于原创仓库的
连接远程仓库
git remote add <仓库别名> <远程仓库地址>
git remote -v 查看别名
git push -u <远程仓库名 ...
stm32-c语言复习
- Date:2023-06-05
Time:17:08
Subject: none
Tags: #stm32
[[2023-06]]
printf函数输出流程
printf的使用
123456//printf("字符串\r\n");printf("Hello World!\r\n");//printf("输出控制符",输出参数);uint32_t temp = 10;printf("%d\r\n", temp); /* %d是输出控制符,temp是输出参数 */
常用输出控制符表
常用转义字符表
例子
12345678910111213//printf("输出控制符1输出控制符2…",输出参数1,输出参数2,…);uint32_t temp1 = 5; uint32_t temp2 = 10;printf("%d%x \r \n", temp1,temp2); //printf("非输出控制符 输出控制符 非输出控 ...
stm32-system文件夹
- Date:2023-06-05
Time:15:31
Subject: none
Tags: #stm32
[[2023-06]]
sys文件夹介绍
deley文件夹介绍
deley文件夹函数简介
SysTick工作原理
SysTick,即系统滴答[[定时器]],包含在M3/4/7内核里面,核心是一个24位的递减计数器(2的24次方,来一个脉冲就递减)
每次VAL到0时,VAL自动从LOAD重载!开始新一轮递减计数!
SysTick寄存器介绍
SysTick控制及状态寄存器(CTRL)
SysTick重装载数值寄存器(LOAD)
SysTick当前数值寄存器(VAL)
delay_init()函数(f1)
12345678void delay_init(uint16_t sysclk)//传入72(mhz){ SysTick->CTRL = 0;//hal库清空,再配置 HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK_DIV8);//八分频,所以是72/8=9,计数频率是9mhz g_fa ...
stm32-基础知识
- Date:2023-05-22
Time:22:55
Subject: none
Tags: #stm32
[[2023-05]]
存储器映射
存储器指可以存储数据的设备,本身没有地址信息,对存储器分配地址的过程称为存储器映射
19根地址线:A0-A18 16根数据线:D0-D15
地址范围:0 - 512K
映射1:0 - 512K
映射2:1 – 512K + 1
映射3:100K – 612K
映射4:512K – 1024K
F1为例子
ST将4GB(2^32)地址空间分成8个块
Block0(FLASH)功能划分
Block1(SRAM)功能划分
Block2(外设)功能划分
寄存器映射
寄存器是单片机内部一种特殊的内存,可以实现对单片机各个功能的控制
简单来说:寄存器就是单片机内部的控制机构
STM32寄存器分类
F1为例
寄存器是特殊的存储器,给寄存器地址命名的过程,就叫寄存器映射
寄存器描述解读
① 寄存器名字
② 偏移量及复位值
③ 寄存器位表
④ 位功能描述
直接操 ...
stm32-hal
- Date:2023-05-25
Time:15:57
Subject: none
Tags: #stm32
[[2023-05]]
基于CMSIS应用程序文件描述
STM32开发文件结构分布
HAL库的用户配置文件(stm32f1xx_hal_conf.h)
裁剪HAL库外设驱动源码(不进行编译)
/#ifdef /#endif 的使用
设置外部高速晶振频率(HSF)(根据开发板实际情况设置)
设置外部低速晶振频率(根据开发板实际情况设置)
HAL库使用注意事项
使用HAL库出现问题,还是得通过参考手册检查是否硬件操作是否有问题
尽量不通过修改库源码实现功能,这样不方便库更新
HAL库可能会存在错误,要有质疑精神
有些HAL库API函数执行效率偏低,我们可能会直接通过操作寄存器的方式代替
- Date:2023-05-25
Time:12:53
Subject: none
Tags: #stm32
[[2023-05]]
CMSIS简介
CMSIS (微控制器软件接口标准):Cortex Microcontroller Software In ...
stm32-gpio
- Date:2023-06-08
Time:20:49
Subject: none
Tags: #stm32 #GPIO
[[2023-06]]
通用外设驱动模型(四步法)
初始化
时钟设置:选择时钟源,启动时钟
参数设置:gpio工作方式
io设置:除了gpio,如串口usart,
中断设置:开启,设置NVIC
读函数(可选)
从外设读取数据
写函数(可选)
往外设写入数据
中断服务函数(可选)
根据中断标志,处理外设各种中断事务
GPIO配置步骤
#配置
使能时钟
__HAL_RCC_GPIOx_CLK_ENABLE()
主要寄存器:
F1:RCC_APB2ENR //APB2总线上的
F4:RCC_AHB1ENR
F7:RCC_AHB1ENR
H7:RCC_AHB4ENR
开启GPIO时钟
设置工作模式
HAL_GPIO_Init()
主要寄存器:
F1:CRL、CRH、ODR
F4/F7/H7:MODER、OTYPER、OSPEEDR、PUPDR
初始化GPIO
设置输出状态(可选)
HAL_GPIO_WritePin()
HAL_GPIO_ ...
stm32-cubemx
- Date:2023-06-04
Time:23:37
Subject: none
Tags: #stm32 #配置
[[2023-06]]
STM32CubeMX简介
STM32CubeMX是ST开发的一款图形配置工具,可通过配置自动生成初始化代码
一个图形配置工具,搭配不同系列的STM32Cube固件包,即可支持不同系列的STM32芯片
新建STM32CubeMX工程步骤
一个小细节
选用basic,详细的配置看视频吧
stm32-中断
- Date:2023-06-10
Time:09:07
Subject: none
Tags: #stm32 #中断
[[2023-06]]
什么是中断
打断CPU执行正常的程序,转而处理紧急程序,然后返回原暂停的程序继续运行,就叫中断
中断的作用和意义
实时控制:在确定时间内对相应事件作出响应,如:温度监控
故障处理:检测到故障,需要第一时间处理,如:电梯门夹人了
数据传输:不确定数据何时会来,如:串口数据接收
中断的意义:高效处理紧急程序,不会一直占用CPU资源
STM32 GPIO外部中断简图
- Date:2023-06-10
Time:09:12
Subject: none
Tags: #stm32 #NVIC #中断
[[2023-06]]
NVIC基本概念
Nested vectored interrupt controller,嵌套向量中断控制器,属于内核(M3/4/7)
NVIC支持:256个中断(16内核 + 240外部),支持:256个优先级,允许裁剪!
什么是中断向量表?
定义一块固定的内存,以4字节对齐,存放各个中断服务函数程序的首地址 ...
stm32-时钟系统
- Date:2023-06-05
Time:14:21
Subject: none
Tags: #stm32 #时钟
[[2023-06]]
什么是时钟
简单来说,时钟是具有周期性的脉冲信号,最常用的是占空比50%的方波
时钟是单片机的脉搏,搞懂时钟走向及关系,对单片机使用至关重要!
认识时钟树(F1)
L:low
S:speed
I:internal
E:external
时钟树简图
PLL:锁相环,倍频系数:2~3(PLLCLK)
HSE分频可以说/1或者/2,HSI分频/2,再来到PLL倍频
HCLK前分频也用1,保持72mhz
APB1则分频/2,
低速晶振
HAL库内体现
时钟源、锁相环:HAL_RCC_OscConfig()
系统时钟、总线:HAL_RCC_ClockConfig()
使能外设时钟:_ _ HAL_RCC_PPP_CLK_ENABLE() 是一个宏定义,打开外设时使用时
扩展外设时钟(RTC/ADC/USB):HAL_RCCEx_PeriphCLKConfig()
STM32CubeMX时钟树(F103)
- Date: ...