- 博客(22)
- 收藏
- 关注
原创 Git的用法,这一篇就够了
查看提交记录(每次提交都有唯一的提交ID,作者,邮箱,时间,提示信息)缺点:会改变提交历史,改变了当前分支branch out的节点。将不同分支合并到当前分支中(merge后面是将要被合并的分支)删除完,记得再提交下(否则删除的文件在版本库还是存在的)文章中图片部分非原创,如有侵权,请联系本人删除!比较2个版本差异(ID : 2次提交版本的ID)优点:不会破环原分支的提交历史,方便回溯和查看。HEAD 指向分支的最新提交节点(最新版本)缺点:会产生额外的提交节点,分支图比较复杂。
2023-09-11 19:25:20
152
原创 OpenCV人脸识别
创建构建目录:打开终端,并在你解压 OpenCV 源代码的目录中创建一个新的构建目录。配置动态链接库:为了让系统能够找到并加载 OpenCV 库,你需要配置动态链接库。你可以根据需要添加其他选项来配置构建过程。“无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。安装依赖项:首先,确保你的系统安装了必要的依赖项。配置构建:运行 CMake 命令来配置构建过程。这将使用多个线程进行编译,并在完成后将 OpenCV 安装到系统中。系统中已经安装了被依赖的包的高版本。
2023-06-24 14:02:46
261
1
原创 网络编程与IO模型
在服务器中,0.0.0.0指的是本机上的所有IPV4地址,如果一个主机有两个IP地址,192.168.1.1 和 10.1.2.1,并且该主机上的一个服务监听的地址是0.0.0.0,那么通过两个ip地址都能够访问该服务。服务端:收到客户端连接 打开文件(清空 创建) 循环写入数据帧 recv() == 0//客户端退出。客户端:连接成功 打开文件 循环读写文件 文件数据帧发送到服务器 当读完退出循环 关闭。udp 无连接 不可靠 (数据报套接字)获取鼠标数据长度(异步 占用cpu不高)
2023-06-24 13:52:35
130
1
原创 Ubantu SSH服务
Secure Shell (SSH) 是用于客户端和服务端之间安全连接的网络协议。启用SSH服务将允许您远程连接到系统执行并管理任务。您还可以通过scp和sftp命令来传输拷贝文件。默认情况下,当你安装完Ubuntu系统后,系统是不允许通过SSH进行远程访问的,您需要安装OpenSSH并启用它。注: 确保SSH服务已经安装才可以进行连接。
2023-06-03 17:26:27
247
原创 RTC与BKP驱动
RTC与BKP驱动时钟树LSErtc.c#include "rtc.h"//以下2行全局变量,用于RTC时间的读取与读入uint16_t ryear; //4位年uint8_t rmon,rday,rhour,rmin,rsec,rweek;//2位月日时分秒周void RTC_Init(void) //用户自建的带有上电BPK判断的RTC初始化{ hrtc.Instance = RTC; hrtc.Init.AsynchPrediv = RTC_AUTO_1_SECOND;
2022-04-26 12:37:50
891
原创 SPI闪存芯片
SPI闪存芯片Mode [Full-Duplex Master]全双工主机CPOL [High]CPHA[2Edge]NVICPB12[W25Q128_CS]使用方法 /* USER CODE BEGIN 1 */ uint8_t EX_FLASH_BUF[1];//W25Q128芯片数据缓存数组 /* USER CODE END 1 */HAL_Delay(500);//毫秒延时 W25QXX_Init();//W25QXX初始化 printf("W25Q128测试程序:
2022-04-26 12:33:16
862
原创 温湿度传感器DHT
温湿度传感器DHT11_DA使用方法 /* USER CODE BEGIN 1 */uint8_t DHT11_BUF[2] = { 0 };//用于存放DHT11数据 /* USER CODE END 1 *//* USER CODE BEGIN 2 */HAL_Delay(500);//毫秒延时DHT11_Init();//传感器芯片初始化HAL_Delay(1500);//毫秒延时DHT11_ReadData(DHT11_BUF);//读出DHT11传感器数据(参数是存放数
2022-04-26 12:32:37
309
原创 串口(USART)
串口(USART)注意 需禁用syscalls.c(和main.c在同一目录下)替换为retargetretarget.c位置在Core下的Src文件夹下retarget.h位置在Core下的Inc文件夹下使用方法CUBEMX USART1 选择异步模式【Asynchronous】/* USER CODE BEGIN 2*/此处写代码(初始化函数后)/*USER CODE END 2 */RetargetInit(&huart1); //将printf()函数映射到USART1
2022-04-26 12:31:20
1640
3
原创 蓝牙与WiFi
蓝牙透传HAL_UART_Receive_IT(&huart2, (uint8_t*) &USART2_NewData, 1); //开启串口2接收中断 RS485orBT = 0;//RS485orBT标志位为1时是RS485模式,为0时是蓝牙模块if (USART2_RX_STA != 0) { // 串口2判断中断接收标志位[处理从蓝牙外部设备接收的字符] BUZZER_SOLO1(); //蜂鸣器发声[HAL库精准延时函数] BT_printf("%c"
2022-04-26 12:30:29
437
原创 ADC与DMA
ADC与DMA1.ADC驱动函数方法(占用ARM内核时间)CUBEMXVSSA 和VDDA是ADC功能的电源输入将Rank中的Sampling Time设置为55.5Cycles[采样时间55.5个时钟周期]int main(void){后uint16_t a1, a2; //用于ADC数据读取的暂时变量初始化函数后/* USER CODE BEGIN 2 */写代码/* USER CODE END 2 */HAL_ADCEx_Calibration_Start(&hadc1
2022-04-26 12:28:48
1897
原创 外部中断与定时器 PWM
外部中断/* USER CODE BEGIN 0 */void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { //外部中断回调函数 if (GPIO_Pin == KEY1_Pin) { //判断产生中断的端口 if (KEY_1()) { //按键处理程序判断按键按下或放开 LED_1_Contrary(); //电平反转 } }}/* USER CODE END 0 */在key.h中加入:因为中断与HAL库函数不可同时使用#in
2022-04-26 12:27:39
490
原创 蜂鸣器(buzzer)延时函数(delay)和继电器(relay)驱动
蜂鸣器(buzzer)CUBEMX [BEEP1]使用方法BUZZER_SOLO1();//蜂鸣器输出单音的报警音(样式1:HAL库的精准延时函数)BUZZER_SOLO2();{//蜂鸣器输出单音的报警音(样式2:CPU微秒级延时)buzzer.c#include "buzzer.h"#define time1 50 //单音的时长#define hz1 1 //单音的音调(单位毫秒)void BUZZER_SOLO1(void){//蜂鸣器输出单音的报警音(样式1:HAL库的精
2022-04-26 12:26:21
5940
原创 LED与KEY按键驱动
LED驱动CUBEMX [LED1] [LED2]使用方法LED_1(1);//LED1亮LED_1(0);//LED1灭LED_1_Contrary();LED1电平反转led.h#ifndef LED_LED_H_#define LED_LED_H_#include "stm32f1xx_hal.h" //HAL库文件声明#include "main.h" //IO定义与初始化函数在main.c文件中,必须引用void LED_1(uint8_t a);//LED1独立控
2022-04-26 12:23:30
499
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人