自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vi界面代码对其和移动

gg=G //gg表示第一行,=表示对其,G表示最后一行,整体表示代码从第一行到最后一行全部对齐。命令行模式按v进入可视模式,选中代码段,shift + 是右移。

2022-11-05 22:01:52 307 1

原创 gcc -I -l -L的区别

L /home/hello/lib表示将/home/hello/lib目录作为第一个寻找库文件的目录。

2022-08-26 21:19:43 189

原创 TCP三次握手四次挥手

TCP(Transfer control protocol)传输控制协议。

2022-08-24 15:14:18 161

原创 树莓派摄像头配置mjpg-streamer安装及使用

如果detected=0,说明摄像头模块没接好,重新排查下硬件。detected=1则说明CSI摄像头接入正常。supported=1说明摄像头已经使能,摄像头已经可以使用。supported=1则说明CSI摄像头没有使能。(3)修改vi start.sh将input_uvc.so修改为input_raspicam.so如下。然后打开浏览器,网址输入http://树莓派地址:8080(地址通过ifconfig查看)运行"sudo raspi-config"命令使能树莓派CSI摄像头,使能后重启。

2022-08-23 15:37:22 1879 2

原创 Linux分文件编程

1 将需要的函数写在xx.c(不用到,无需添加任何头文件)文件,在xx.h(不用添加头文件)中声明函数。3 编译生成可执行程序gcc main.c xx.c。2 在主函数添加xx.h文件,然后调用函数。

2022-08-04 17:05:15 117

原创 蓝桥杯嵌入式uart串口通信

1,在cubeMX中配置,模式选择异步模式,波特率设置为9600,打开串口中断,然后生成代码。//串口发送char temp[10];sprintf(temp,"Error\r\n");HAL_UART_Transmit(&huart1,(uint8_t *)temp,strlen(temp),50); //50是超时时间//写之前先添加usart.h,串口中断回调函数,每次中断只能接收一个字符,使用之前必须在主函数中先打开串口中断char rxdata[40]; .

2022-04-30 19:51:33 950

原创 蓝桥杯嵌入式IIC通信-eeprom读写

1,先查手册,可以看到24C02连接的是PB6,PB7引脚。2,在cubeMX配置引脚,选择output模式(因为官方会给软件IIC的库所以配置引脚就可以了)。3,对官方库的文件进行移植,把这两个文件复制到自己的文件夹并在keil中添加。4,i2c - hal.c中写读写函数。//读函数uint8_t eeprom_read(uint8_t addr){ uint8_t dat; I2CStart(); //¿ªÆôIIC I2CSendByte(0xa0); //ÁªÏµÐ

2022-04-29 23:33:30 760

原创 蓝桥杯嵌入式ADC测量电压

1,先看官方给的手册,PB15和PB12分别和两个可调电阻相连。2,配置引脚为ADC输入。3,左侧找到Analog。分别配置ADC1和ADC2选择Single-dened。4,到这里已经配置完成,生成代码即可。5,新建两个文件,badc.c badc.h。//.c文件#include "badc.h"double getADC(ADC_HandleTypeDef *pin){ uint adc; HAL_ADC_Start(pin); //..

2022-04-26 19:31:33 592

原创 蓝桥杯嵌入式定时器输入捕获(频率,占空比测量)

这里是测开发板自带的信号发生器的频率。1.在cubeMX中配置引脚,分别选择定时器2的通道1和定时器3的通道1。使能定时器通道作为输入模式。3,分频系数(psc)80-1,ARR默认就可以。4,NVIC中使能中断。5,生成代码。6,在interrupt中写中断回调函数。...

2022-04-26 18:59:45 2871 1

原创 蓝桥杯嵌入式定时器输出PWM(可调占空比)

功能要求100Hz指的是定时频率不是定时器工作频率 。定时器工作频率 = 外部总线频率 / (PSC + 1);定时频率 (PWM波的频率)=定时器工作频率 / (period + 1) = 外部总线频率 / ((PSC + 1)*(period + 1));PA6引脚选择TIM16_CH1,PA7选择TIM17_CH1在左边Timers找到TIM16先使能再选择PWM输出通道1,PSC设为8000-1,period为100-1。设置初始占空比20%...

2022-04-24 22:08:58 1784 1

原创 蓝桥杯嵌入式定时器-长按键及界面切换

根据上个文章修改//在结构体中添加两个变量struct keys{ uchar judge_sta; bool key_sta; //按键状态 bool single_flag; //短按键 bool long_flag; //长按键 uint key_time; //计时};void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){ if(htim->Instance == TIM4)

2022-04-24 19:56:26 657

原创 蓝桥杯嵌入式定时器-按键单击

先说一下思路:在手册里可以看到引脚是和VDD相连的所以没按下引脚是高电平,按下就是低电平。这里我们需要检测按键有没有被按下,就需要配置定时器中断每隔一段时间扫描按键。把需要的引脚设置为输入模式(GPIO_Input),然后模式设置为上拉模式参考手册76页找到Timers配置TIM4时钟源选择内部时钟。点击设置psc和arr因为总线频率是80MHz,所以就是10ms扫描一次。在NVIC中把中断使能生成代码。新建interrupt.c和.h文件。编译一...

2022-04-24 18:43:03 563 2

原创 蓝桥杯嵌入式LCD液晶屏显示

这个不用我们自己写,官方给了完整的工程,我们需要的文件就在这个路径里。需要移植到自己的文件夹。\赛点资源数据包_ES\2-新版竞赛平台\5-液晶驱动参考程序\HAL_06_LCD这里我们直接调库就可以,不用在cubeMX中配置引脚,库已经帮我们配置好了。\HAL_06_LCD\Inc 把fonts.h和lcd.h添加到自己的文件夹。\HAL_06_LCD\Src 把lcd.c添加到自己的文件夹。在main.c中添加#include "lcd.h"#include "stdio.h

2022-04-24 15:21:24 1105

原创 蓝桥杯嵌入式M4板点灯

先看产品手册找到LED灯对应的引脚在cubeMX中一 一配置为输出模式这边要注意PD2引脚为锁存器也要配置为输出模式。System Core中点击GPIO。PC8到PC15全选,配置为High,这样就默认关闭灯。PD2就不用动了,它是高电平使能,低电平关闭。然后再新建的文件夹中建立led.h和led.c,这里还要记得包含路径。在main.h中定义两个类型,方便使用#define uchar unsigned char#define uint unsigned

2022-04-24 14:43:20 278

原创 蓝桥杯嵌入式M4板的cubeMX配置及工程建立

在Part Number 输入芯片名,STM32G431RB,在右下选择LQFP64封装,点击右上角Start Project选择好芯片后,选择Pinout,左边SystemCore点击RCC打开高速时钟,选第三项。然后会发现有两个引脚被使能,就配置成功了。打开时钟配置(Clock Configuration)这是已经配置好的,有4个地方需要配置。先设置外部输入时钟频率24,芯片手册可以看到 这个晶振是24MHz。然后选择HSE外部高速时钟。选择HCCLK,设置HCLK为

2022-04-24 11:35:44 479

原创 Keil5用固件库建立工程

先在ST官网下载固件库 打开文件 新建project文件夹,并在里面新建三个文件夹,CMSIS(存放内核函数及启动引导文件),FWLIB(存放库函数),USER(存放用户自己的函数),如图。 这里主要用到Librarise和Project两个文件夹。将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport中的文件复制到CMSIS中,再将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSI

2022-04-05 19:57:43 1998 1

原创 Linux 切换目录(cd的使用)

cd命令是”change directory”中单词的首字母缩写,其英文释义是改变目录,所以该命令的功能是从当前目录切换到指定目录。其中目录的路径可分为绝对路径和相对路径。若目录名称省略,则切换至使用者的用户目录(也就是刚登录时所在的目录)。另外,“~”也表示为用户目录的意思,“.”则是表示目前所在的目录,“..”则表示当前目录位置的上一级目录。语法格式:cd [参数] [目录名](注意:cd和参数之间要加空格)使用“cd ~ ”(cd空格~)命令可以直接切换到当前用户目录,而“cd ..

2021-11-14 18:43:25 3495

原创 Linux线程(函数)

多线程开发在 Linux 平台上已经有成熟的 pthread 库支持。其涉及的多线程开发的最基本概念主要包含三点:线程,互斥锁,条件。其中,线程操作又分线程的创建,退出,等待 3 种。互斥锁则包括 4 种操作,分别是创建,销毁,加锁和解锁。条件操作有 5 种操作:创建,销毁,触发,广播和等待。其他的一些线程扩展概念,如信号灯等,都可以通过上面的三个基本元素的基本操作封装出来。 1. 线程创建#include <pthread.h>int pthread_create(pthrea

2021-11-13 13:06:58 834

原创 char * 和const char *的区别

一、含义的不同char* 表示一个指针变量,并且这个变量是可以被改变的。const char*表示一个限定不会被改变的指针变量。二、模式的不同char*是常量指针,地址不可以改变,但是指针的值可变。const char*是指向常量的常量指针,地址与值均不可变。三、指针指向的内容的不同char*指针指向的内容是可以改变的,是不固定的。赋值后在数据传递的过程中允许改变。const char*指针指向的内容是固定的,不可改变的。对传入的参数,不会对指针指向的内容进行修改四、意义

2021-11-03 09:47:13 28796 1

空空如也

空空如也

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

TA关注的人

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