- 博客(62)
- 收藏
- 关注
原创 gbk转utf-8
此项目是将文件编码由GBK转成UTF-8,目前只支持由编码GBK或GB2312或GB18030转到UTF-8!!!转码之前记得备份一下,以免转码出错!!!
2024-05-25 20:01:06
806
1
原创 【i.MX6ULL】platform总线
设备驱动的分离,有总线(bus)、驱动(driver)和设备(device)模型,比如 I2C、 SPI、 USB 等总线。但是在 SOC 中有些外设是没有总线这个概念的,但是又要使用总线、驱动和设备模型该怎么办呢?为了解决此问题, Linux 提出了platform这个虚拟总线,相应的就有platform_driver 和 platform_device。
2024-04-20 19:44:19
921
原创 【i.MX6ULL】使用buildroot构建根文件系统
本篇文章时参考的正点原子的教程,按照教程给野火的imx6ull mini开发板制作一个根文件系统。话不多说,步入主题吧。
2023-12-17 21:26:25
2017
原创 0.96寸oled显示坏苹果(badapple)
俗话说:有屏幕的地方就会有badapple。下面带来使用0.96寸OLED屏幕显示badapple的教程。
2023-05-15 14:49:34
2042
原创 【Makefile通用模板】入门必看篇,超详细
变量值可以随意定义。gcc分为很多种,常见的有:gcc、arm-linux-gcc、arm-none-eabi-gcc等等,所以为了Makefile适配更多的C/C++项目,可以将编译器定义一个变量,这后续更改起来很方便。CC = gcc。
2023-04-15 15:43:05
2273
2
原创 虚拟机与主机互传文件
在开发的过程中会频繁的在 Windows 和 Ubuntu 下进行文件传输,比如在 > Windwos 下进行代码编写,然后将编写好的代码拿到 Ubuntu 下进行编译。Windows和Ubuntu下文件互传使用的是windows系统下的映射网络驱动器。
2023-04-05 17:55:09
2354
1
原创 开发板 ping 虚拟机
至此,开发板已经可以与虚拟机ping通了,但现在虚拟机是没法上网了,若是虚拟机想上网,将虚拟。机的网络连接设置成原来的配置即可,唉,总感觉有点太麻烦了,若有更好的设置方法,欢迎在评论。先把笔记本端的关闭:【设置】->【网络与Internet】->【Windows防火墙】然后通过u-boot命令printenv查看一下IP地址是否设置成功。使开发板进入u-boot命令模式,设置一下开发板的IP地址。见证奇迹的时刻即将到来,精彩节目稍后继续~~~区留下链接,本篇文章到这里就结束了~~~
2023-04-01 16:26:45
1663
8
原创 将MSYS2添加到windows终端中
每次在文件中右击打开终端运行MSYS2时所在的路径不是当前路径,这点是很恶心的,好在有解决办法,首先找到安装目录的。现在就可以在终端中体验MSYS2了~接着找到安装目录的home/用户。
2023-03-18 19:08:27
3113
1
原创 gcc编译选项
4、连接目标代码, 生成可执行程序。变为目标代码(机器代码)生成。转换成汇编语言, 生成文件。2、将预处理后的文件。以下为常用的编译选项。
2022-11-19 14:10:51
687
原创 Makefile(二)
以后我们的源文件 .c 增多,目录结构更复杂,此时借助 makefile 是最方便的。函数为例进行讲解,并且示例中都是我们后面 Makefile 中使用到的内容.当输入的字符串符合匹配规则,那么使用替换规则来替换字符串,当匹配规则中有。notdir 函数用于去除文件路径中的目录部分。在 Makefile 中调用函数的方法跟变量的使用类似,以“$(patsubst 匹配规则, 替换规则, 输入的字符串)匹配的内容加入到最后替换的字符串中。不上,所以不会进行替换,函数直接返回空的内容。号中,所以最终的输出为。
2022-11-10 12:04:03
466
1
原创 【RISC-V】 li指令
li 何时扩展为 lui 或者 addi呢?又何时扩展为lui 和 addi呢?可以将任意的32位数据或者地址加载到指定的寄存器中。我们观察lui 和 addi 的指令码即可得出结果。li a0, immediately 扩展成。在 RV32I中,它扩展到。加载的立即数为高20位,加载的立即数为低12位。
2022-10-28 14:03:22
16027
原创 STM32基于HAL库的USART+DMA使用
使能USART以上配置好之后,点击生成工程编写中断回调函数当触发接收中断时,将接收到的数据通过DMA发送出去当触发发送中断时,使用DMA接收一下使能接收中断在main.c中编译、下载进去就能看到效果接收不定长度时,需要判断USART什么时候为空闲状态,当触发空闲中断时,证明此时已经接收全部数据,需要用到的函数有使能空闲中断在 MX_USART1_UART_Init() 函数中添加定义一个接收缓冲区编写USART1中断编写中断回调函数使能接收中断在main.c中若是不添加
2022-06-24 19:05:56
4536
8
原创 【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
3925
原创 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
6425
5
原创 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
5486
71
原创 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
5000
3
原创 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
4844
原创 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
9764
22
原创 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
9656
10
原创 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
2170
原创 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
8353
2
原创 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
7492
1
原创 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
2147
原创 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
8125
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
7716
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
8197
2
原创 两个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
17822
8
原创 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
10173
原创 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
3425
原创 STM32LL库系列教程【一】——安装CubeMx软件
步入图形化编程,一发不可收安装CubeMx之前需要安装Java下载地址:Java安装Java1、等待下载完成~2、双击安装包JavaSetup8u311.exe下面的安装过程不再演示安装STM32CubeMxCubeMx安装包我们可以从ST官网下载:点我选择对应于你的系统版本,等待下载完成~双击安装包SetupSTM32CubeMX-6.3.0-Win...
2021-11-07 13:03:49
1839
原创 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
8289
3
原创 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
4607
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人