自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【i.MX6ULL】使用buildroot构建根文件系统

本篇文章时参考的正点原子的教程,按照教程给野火的imx6ull mini开发板制作一个根文件系统。话不多说,步入主题吧。

2023-12-17 21:26:25 1067

原创 【i.MX6ULL】linux驱动bh1750模块

bh1750设备的地址由引脚来决定。

2023-12-06 20:14:17 1111

原创 0.96寸oled显示坏苹果(badapple)

俗话说:有屏幕的地方就会有badapple。下面带来使用0.96寸OLED屏幕显示badapple的教程。

2023-05-15 14:49:34 1125 1

原创 【基于gcc】手把手教你移植RT-Thread到STM32

基于GCC RT-Thread移植到STM32F103

2023-04-24 20:51:34 2158 15

原创 【Makefile通用模板】入门必看篇,超详细

变量值可以随意定义。gcc分为很多种,常见的有:gcc、arm-linux-gcc、arm-none-eabi-gcc等等,所以为了Makefile适配更多的C/C++项目,可以将编译器定义一个变量,这后续更改起来很方便。CC = gcc。

2023-04-15 15:43:05 1609 2

原创 虚拟机与主机互传文件

在开发的过程中会频繁的在 Windows 和 Ubuntu 下进行文件传输,比如在 > Windwos 下进行代码编写,然后将编写好的代码拿到 Ubuntu 下进行编译。Windows和Ubuntu下文件互传使用的是windows系统下的映射网络驱动器。

2023-04-05 17:55:09 1700 1

原创 开发板 ping 虚拟机

至此,开发板已经可以与虚拟机ping通了,但现在虚拟机是没法上网了,若是虚拟机想上网,将虚拟。机的网络连接设置成原来的配置即可,唉,总感觉有点太麻烦了,若有更好的设置方法,欢迎在评论。先把笔记本端的关闭:【设置】->【网络与Internet】->【Windows防火墙】然后通过u-boot命令printenv查看一下IP地址是否设置成功。使开发板进入u-boot命令模式,设置一下开发板的IP地址。见证奇迹的时刻即将到来,精彩节目稍后继续~~~区留下链接,本篇文章到这里就结束了~~~

2023-04-01 16:26:45 1069 3

原创 将MSYS2添加到windows终端中

每次在文件中右击打开终端运行MSYS2时所在的路径不是当前路径,这点是很恶心的,好在有解决办法,首先找到安装目录的。现在就可以在终端中体验MSYS2了~接着找到安装目录的home/用户。

2023-03-18 19:08:27 1423

原创 【vim】C语言代码提示

vim安装C语言提示插件

2023-01-30 20:44:26 2222 1

原创 VSCode使用Clangd

在使用微软的C/C++插件时,遇到较大项目时,代码提示速度非常的慢,这时可以使用clangd。

2023-01-13 18:54:30 7888 5

原创 【C语言】结构体、共用体、位域

以上两个例子可以使用关键字:

2022-12-30 14:44:59 937 1

原创 gcc编译选项

4、连接目标代码, 生成可执行程序。变为目标代码(机器代码)生成。转换成汇编语言, 生成文件。2、将预处理后的文件。以下为常用的编译选项。

2022-11-19 14:10:51 590

原创 Makefile(二)

以后我们的源文件 .c 增多,目录结构更复杂,此时借助 makefile 是最方便的。函数为例进行讲解,并且示例中都是我们后面 Makefile 中使用到的内容.当输入的字符串符合匹配规则,那么使用替换规则来替换字符串,当匹配规则中有。notdir 函数用于去除文件路径中的目录部分。在 Makefile 中调用函数的方法跟变量的使用类似,以“$(patsubst 匹配规则, 替换规则, 输入的字符串)匹配的内容加入到最后替换的字符串中。不上,所以不会进行替换,函数直接返回空的内容。号中,所以最终的输出为。

2022-11-10 12:04:03 410 1

原创 【RISC-V】 li指令

li 何时扩展为 lui 或者 addi呢?又何时扩展为lui 和 addi呢?可以将任意的32位数据或者地址加载到指定的寄存器中。我们观察lui 和 addi 的指令码即可得出结果。li a0, immediately 扩展成。在 RV32I中,它扩展到。加载的立即数为高20位,加载的立即数为低12位。

2022-10-28 14:03:22 10992

原创 RISC-V指令集

RV32I有32个通用寄存器,以及一个PC寄存器。其中有一个通过硬件设置的值恒为 0 的 x0 寄存器。

2022-10-04 12:40:22 22937 4

原创 STM32基于HAL库的USART+DMA使用

使能USART以上配置好之后,点击生成工程编写中断回调函数当触发接收中断时,将接收到的数据通过DMA发送出去当触发发送中断时,使用DMA接收一下使能接收中断在main.c中编译、下载进去就能看到效果接收不定长度时,需要判断USART什么时候为空闲状态,当触发空闲中断时,证明此时已经接收全部数据,需要用到的函数有使能空闲中断在 MX_USART1_UART_Init() 函数中添加定义一个接收缓冲区编写USART1中断编写中断回调函数使能接收中断在main.c中若是不添加

2022-06-24 19:05:56 2985 6

原创 STM32基于HAL库的ESP8266实现

使用HAL库驱动ESP8266

2022-06-09 07:31:18 5716 3

原创 【C语言】提取字符串中的数据

在我们使用AT指令或者服务器返回的数据都是一大串,我们只需要其中的某处就行了,刚开始不知所措,在我一筹莫展时发现了C库有两个函数(strstr与sscanf)正好可以解决当前问题~假如我们有一串数据: IP:192.168.0.1+Port:8080+usr:xxx假如我们想得到:端口号,我们可以按照以下步骤进行:1、找到 Port 出现的位置观察数据可知,端口号在 Port 后面,我们先得到Port第一次出现的位置,此时就需要用到 strstr() 函数了代码如下: char *str.

2022-05-21 17:24:46 3445

原创 ESP8266获取心知天气

下面是使用AT指令连接到心知天气测试AT指令AT响应:OK若是没有回应 OK,检查一下引脚连接情况1. 配置 WiFi 模式AT+CWMODE=1 //1:作为客户端 2:作为服务器响应 :OK2.复位AT+RST响应..ready //最后一行3.连接网络AT+CWJAP=“SSID”,“password”响应 :WIFI CONNECTEDWIFI GOT IPOK4.查询 ESP826.

2022-05-20 23:43:23 5570 2

原创 STM32驱动BH1750模块

模块描述BH1750FVI是一款用于I2C总线接口的数字环境光传感器IC。该集成电路最适合获取环境光数据,用于调整手机的LCD和键盘背光功率。可以在高分辨率下检测宽范围(1-65535 lx)引脚说明VCC5VGNDGNDSCLPB6SDAPB7ADDRVCC/GNDADDR引脚等下再说接VCC还是GND上述引脚可以自行更改工作模式BH1750FVI模块共有六种工作模式:连续H-分辨率模式、连续H-分辨率模式2、连续L-分辨率模式、一次H分辨

2022-04-20 18:45:46 4365 55

原创 ubuntu下的串口调试助手

Linux下强推的一款软件Comtool,不仅支持串口调试,还支持网络调试,此项目源码路径:giteeComtool这款串口调试软件是Python开发的,需要下载下列软件:Python3、python3-pip安装Pythoh3sudo apt-get install python3安装python-pipsudo apt-get install python3-pip安装Comtoolsudo pip3 install comtool此时Comtool已经安装成功了运行此软件.

2022-04-06 15:21:27 4414 1

原创 ubuntu搭建STM32开发环境

所需软件GNU Arm Embedded ToolchaingccmakeopenocdSTM32CubeMxVSCode一、环境配置1、安装gcc-arm-none-eabi进到官网选择Linux版本等待下载~接着直接解压,解压之后用 cd 进到解压的文件目录下,查看一下文件(文件我已经重命名)紧接着进到 bin 目录下,查看一下文件信息下面我们将此路径添加到环境变量中打开终端,输入:vim ~/.bashrc 跳转到最后一行,将gcc-arm-none-eabi的b

2022-04-01 16:49:49 4163

原创 VSCode搭建STM32开发环境

废话不多说,直接步入正题所需软件如下:GNU Arm Embedded ToolchainmakeopenocdSTM32CubeMxVSCodeGNU Arm Embedded Toolchain进到ARM官网选择win32版本下载下载好之后,解压到C盘根目录下(建议),打开文件,找到 /bin 目录,添加下环境中,接着Win+R输入 powershell,然后输出 **arm-**按下Tab键后,若补全则代表环境配置成功安装Make在windows上安装make我们可以借.

2022-01-20 20:53:38 8464 17

原创 STM32基于HAL库的DS18B20实现

开发板:野火挑战者_V2GPIO:PE2创建工程使能USART1用来通过串口打印温度值配置GPIO代码编写我们先打开 DS18B20 的手册1、DS18B20 复位与存在脉冲复位/* DS18B20 复位 将总线拉低 480us - 960us 启动复位,然后等待 15us 检测存在脉冲*/void Ds18b20_Reset(void){ //输出模式下 DQ_GPIO_OUT(); //拉低总线 750us DQ_Write(DQ_LEVEL_LOW).

2022-01-08 17:26:28 8186 7

原创 STM32LL库之printf函数重定向

1、加入以下代码:int fputc(int ch,FILE *f){ uint8_t temp[1]={ch}; LL_USART_TransmitData8(USART1,temp[0]); while(!LL_USART_IsActiveFlag_TXE(USART1));//需要等待发送完成 return(ch);}记得添加 stdio.h 头文件2、在MDK中勾选:Use MicroLIB...

2021-12-25 11:46:15 1652

原创 STM32LL库系列教程【七】——通用定时器PWM实验

开发板:野火霸道V1定时器:TIM3输出通道:CH3GPIO:PB0STM32LL库系列教程——LL库工程配置流程STM32LL库系列教程【一】——安装CubeMx软件STM32LL库系列教程【二】——点亮LED小灯STM32LL库系列教程【三】——USART中断实验STM32LL库系列教程【四】——ADC单通道采集STM32LL库系列教程【五】——DMA实现ADC单通道采集STM32LL库系列教程【六】——通用定时器定时实验STM32LL库系列教程【七】——通用定时器PWM实验.

2021-12-24 16:55:33 6725

原创 STM32LL库系列教程【六】——通用定时器定时实验

搭建工程1、配置工程属性2、确认时钟源3、配置系统时钟4、配置定时器这里选择的定时器为TIM3,定时时间为1ms把定时器设置自动重装载寄存器 ARR 的值为 1000,设置时钟预分频器为 71,则驱动计数器的时钟: CK_CNT = CK_INT / (71+1)=1M,则计数器计数一次的时间等于: 1/CK_CNT=1us,当计数器计数到 ARR 的值 1000 时,产生一次中断,则中断一次的时间为: 1/CK_CNT*ARR=1ms5、使能定时器中断6、 配置GPIO为了验证

2021-12-19 16:12:54 5969

原创 stm32 LL库驱动中景园七脚OLED屏

在我们做项目时,显示模块大多情况下是必不可少的,例如数码管、液晶1602、12864、OLED等等。在使用这些模块时基本上驱动是基于标准库的,下面将说一下OLED屏幕驱动如何移植到LL库硬件介绍OLED为中景园的7引脚屏幕新建工程打开CubeMx创建一个stm32工程,配置好工程属性配置GPIO配置OLED所用的GPIO,GPIO初始化状态为Hight注意:GPIO可以自己选择,但需要更改一下引脚标签GPIO标签:D0 --> SCLKD1 --> SDI.

2021-12-14 23:21:33 1848

原创 STM32LL库系列教程——LL库工程配置流程

配置工程流程选择CPU型号首先创建工程,点击 《ACCESS TO MCU SEL ECTOR》接着搜索型号型号、选择具体型号、完成确认时钟源进入工程后打开 RCC 选项,选择 Crystal/Ceramic Resonator,即使用外部晶振作为 HSE 的时钟源。配置系统时钟开发板的外部晶振为 8MHz,我们填入 8;通道选择 LSE; PLLM 选择为/1;倍频系数 N 选择为x9;系统时钟选择 PLLCLK;系统时钟设定为72Mz; APB1 分频系数选择为/2 即 PCLK

2021-12-11 11:58:10 6320 1

原创 STM32LL库系列教程【三】——USART中断实验

搭建工程1、配置工程属性2、确认时钟源3、配置系统时钟4、使能USART这里选择的是USART1、模式为异步、打开中断,相关参数配置选择默认5、生成代码点击 GENERATE CODE 会在设定的路径成功生成代码,选择打开工程代码编写CubeMx生成的代码有些寄存器没有使能,我们不能直接使用,需要我们自己使能相关寄存器1、使能接收中断打开usart.c源文件,我们在函数MX_USART1_UART_Init() 最后面添加USART接收中断使能2、编写中断函数在写中断函

2021-12-11 11:01:40 6797 2

原创 STM32LL库系列教程【五】——DMA实现ADC单通道采集

开发板:野火霸道V1芯片:stm32f103ZET6ADC:1CHANNEL:11GPIO:PC1STM32LL库系列教程【一】——安装CubeMx软件STM32LL库系列教程【二】——点亮LED小灯STM32LL库系列教程【三】——ADC单通道采集新建工程步骤1、打开STM32CubeMx软件2、选择芯片型号:stm32f103ZETx3、配置工程属性4、确认时钟源5、配置系统时钟6、打开ADC1的通道117、配置结构体typedef struct{ uin.

2021-12-07 18:22:33 6698

原创 两个ESP8266相互通信

ESP8266共有3种模式:STA、AP、STA+APSTA:ESP8266设备作客户端AP:ESP8266设备作服务器STA+AP:混合模式服务器端ESP8266配置流程1、配置AP模式查询指令:AT+CWMODE?功能:查询 ESP8266 当前 Wi-Fi 模响应:+CWMODE:<mode>​ OK设置指令:AT+CWMODE=<mode>功能:设置 ESP8266 当前 Wi-Fi 模 式。响应:OK.

2021-12-01 11:34:19 15760 2

原创 STM32LL库系列教程【四】——ADC单通道采集

开发板:野火霸道V1芯片:stm32f103ZET6ADC:1CHANNEL:11GPIO:PC1新建工程步骤1、打开STM32CubeMx软件2、选择芯片型号:stm32f103ZETx3、配置工程属性4、确认时钟源5、配置系统时钟6、打开ADC1的通道117、配置结构体typedef struct{ uint32_t ADC_Mode; // ADC 工作模式选择 FunctionalState ADC_ScanConvMode; /* ADC 扫描(多通道).

2021-11-12 12:33:31 8239

原创 STM32LL库系列教程【二】——点亮LED小灯

开发板:秉火-霸道V1芯片:STM32F103ZET6GPIO: PB0选择CPU型号首先创建工程,点击 《ACCESS TO MCU SEL ECTOR》接着搜索型号型号、选择具体型号、完成确认时钟源进入工程后打开 RCC 选项,选择 Crystal/Ceramic Resonator,即使用外部晶振作为 HSE 的时钟源。配置系统时钟开发板的外部晶振为 8MHz,我们填入 8;通道选择 LSE; PLLM 选择为/1;倍频系数 N 选择为 x9;系统时钟选择 PLLCLK.

2021-11-07 15:14:33 2582

原创 STM32LL库系列教程【一】——安装CubeMx软件

步入图形化编程,一发不可收安装CubeMx之前需要安装Java下载地址:Java安装Java1、等待下载完成~2、双击安装包JavaSetup8u311.exe下面的安装过程不再演示安装STM32CubeMxCubeMx安装包我们可以从ST官网下载:点我选择对应于你的系统版本,等待下载完成~双击安装包SetupSTM32CubeMX-6.3.0-Win...

2021-11-07 13:03:49 1554

原创 stm32输出PWM

开发板:野火霸道V1芯片:stm32f103ZET6定时器:TIM3输出通道:CH3GPIO:PB0频率F = 72M / ((ARR+1)*(PSC+1))单位:Hz占空比Duty_Cycle = (TIMx->CCRx) / ARR单位:%下面的试验是通过调节PWM占空比来观察LED小灯的亮度变化电路输出比较输出比较模式由寄存器 CCMRx 的位 OCxM[2:0] 配置PWM模式有2种输出比较结构体typedef struct { uint16_.

2021-10-31 17:48:17 7632 2

原创 Manjaro使用教程

Manjaro指南一、Manjaro配置1、Manjaro的配置和更新2、Manjaro安装必备软件2.1 中文输入法2.2 安装VSCode3、安装.deb软件4、 wine5、安装Windows字体6、安装yay二、配置STM321、配置编译环境2、下载程序3、串口调试助手4、使用printf一、Manjaro配置1、Manjaro的配置和更新安装好Manjaro后,有些提前的工作需要做一下第一就是 更换国内源由于 Manjaro 默认使用国外的更新地址,如果直接拿来就更新系统和软件的话,那速

2021-09-29 21:26:31 3844

原创 基于stm32的超声波模块(中断实现)

开发板:秉火-霸道V1芯片:STM32F103ZET6模块工作原理采用 IO 触发测距,给 Trig 引脚至少 10us 的高电平信号;模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;有信号返回,通过引脚 Echo 输出一高电平,高电平持续的时间就是 超声波从发射到返回的时间.测试距离 = (高电平时间 * 声速(340M/S)) / 2;时序图我们可以借助通用定时器的 输入捕获 来测量 Echo 引脚高电平持续的时间HC_SR04.h#ifndef _B.

2021-09-22 15:57:48 1507

原创 vim必装插件

系统:ManjaroVim:Vi IMproved 8.2 (2019 Dec 12, compiled May 28 2021 06:58:52)安装VunbleVunble是一个vim插件管理器,可以通过它安装各类插件需要安装依赖软件:git :sudo pacman -S git使用git从github上下载Vundle放到vim的bundle路径下:git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/V.

2021-09-19 08:49:24 8573

原创 直接插入排序 C语言实现

假如在军训期间进行由高到底进行站队时,有一同学小明有事没到,但等他到时已经排好队,教官让他找到合适的地方站进去。当小明找到第五位同学,发现没他高,于是小明站在了该同学前面,后面的同学集体向后移动基本思想:将一个数插入到有序的数列中基本思路将一组数据的第一个数据看作有序,...

2021-09-03 11:44:20 992 5

空空如也

空空如也

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

TA关注的人

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