自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AHT20传感器简单使用记录

在CSDN上看了很多文章都是用的模拟IIC读取的,代码太冗余了。也找到有用hal库的,但是读取出来数据不对,发现是代码有些小问题,改了之后就能用了。下面就把改好的贴在下面。使用方法也很简单,初始化之后直接调用读取函数就行。

2024-05-06 10:14:52 188

原创 C语言简易类json格式解析

在使用MQTT时,获取的数据基本上都是json格式的,虽然C语言也可以添加第三方的解析库,但有些资源少的单片机用着还是挺吃力的,所以自己简单写了一个从json格式中获取数据的,说白了就是一个字符串查找。不过这个只会匹配第一个字符串,如果需要匹配不同的,可以传入需要匹配的序号,就只获取对应序号的数据。其实我们需要的数据主要是id,LED,temp后面的值。获取打印出来就是这样的。

2024-04-25 15:50:38 149 1

原创 添加okHttp依赖报错

升级了,改为。

2024-04-10 23:51:38 325

原创 STM32无法识别芯片或者能识别无法下载,提示flash timeout

4.然后断开连接,再使用keil就能下载了,如果还是报错。就重复刚才修改保护等级那,把需要修改的部分取消勾选,然后再应用更改。我这里直接取消了所有的保护区域。之前打了一块F401的核心板测试,只买了一颗芯片,焊上之后首先是无法识别,当时为了方便,只焊了一部分原件。3.apply应用更改后,就能读出芯片数据了。1.选择Option Bytes。其实是芯片开启了写读写保护,这时stlink就能识别了。2.将保护等级设置为0。但是下载程序还是报错。连接还是提示无法连接。

2024-02-11 23:18:43 629

原创 HSCMRNN030PA2A3绝压传感器简单使用

压力数据的计算公式,outputmax和outputmin都不变,pressuremax就是传感器测的最大值,我这里是30psi,同理pressuremin就是能测的最小值,我这里是0psi,代码中我计算扩大了100倍。byte1的前两位是状态位,00就是正常,byte1的后6位,和byte2一共有14位是数据,需要把byte1的后6位左移8位再加上byte2的8位共同合成压力数据。里面有个型号表,我用的就是iic协议,0~30psi(1psi=6895pa),温度和压力转化有个公式,参考霍尼韦尔的。

2024-02-02 09:34:24 297

原创 F1C100S F1C200S测试SPI FLASH(25q128fv)

测试没有问题后就能开心的使用flash作为系统的“盘”了,因为看其他编译flash的镜像太麻烦了,后面再自己尝试,这里我直接烧录荔枝派官方编译好的镜像。因为我只是简单测试一下FLASH能否正常使用,所以用了全志sunxi-tools工具,能够便捷的使用USB直接测试与写入FLASH,使用方法参考。,把uboot下载并编译后,会生成flash的镜像,直接运行down_uboot_spiflash.sh的脚本就能下载镜像到flash中了。重新上电就能开机了(不上TF卡,不然TF卡优先级更高)

2024-01-09 21:05:12 580

原创 沁恒CH571软件IIC

下面是IIC的实现函数,我是直接改的其他程序的,忘了是哪copy来的了,需要修改的可能就是用不同屏幕或者其他iic设备需要改一下地址。因为没怎么用这个芯片,所以配置还没有完全搞清楚,就先尝试的软件模拟IIC,毕竟只要有两个GPIO就能用。CH571蓝牙接收,即刻显示内容。我用的是P13和14。

2024-01-09 20:29:04 510

原创 QT简单实现控件运动代码

原始图像和控件是这样的,绿色的为图片。红色的为一个label或者button,要实现的功能就是按下键盘的按键,控制红色向绿色的4个角落运动,类似摇杆的功能,然后还带有松开键盘自动回弹效果。松开后自动回位,这个功能是通过定时器定时判断键盘状态实现的(也包含长按键盘的处理,若不处理,会出现动画反复播放)3.键盘松开后控件自动回位。首先是监听键盘操作,参考。

2023-12-29 10:01:28 362

原创 OLED旋转任意角度显示,含C语言打印

实现了6x8字符和8x16字符以及16x16中文的旋转显示(旋转数组使用的16x16),不过中文在旋转时可能会出现超过显示区域的情况,因为16x16的旋转会超过这个大小,有需要的可以自行根据程序修改。6x8的字符我就不贴了,可以根据8x16的进行修改,只是我用的旋转数组为12x12。在之前90度旋转的基础上,利用旋转矩阵,完成了任意角度旋转的程序。中文会出现超出区域的情况,使用需扩大旋转和显示区域。这里我直接贴出stm32的代码。字符和中文的数组格式如下。

2023-12-29 09:37:42 599

原创 OLED旋转显示方向,SH1107 软件实现屏幕内容旋转90度显示

因为屏幕驱动芯片自带的智能设置180度,并不带有90度旋转功能,所以自己写了一份简陋程序。这里只以6*8和8*16的字体为例,其他大小或者中文可以自行修改。旋转90度的程序,这里6*8和8*16都可以,只是8*16多了一格。如果显示字符串只需要吧原来的字符显示替换掉就可以了。我直接给出原版和修改后的代码。这里再给出测试用的C语言程序。

2023-12-13 00:26:34 466

原创 RT-Thread配置STM32的SPI Flash,SFUD,FAL,easyflash流程

说明一下环境和设备:RTthread studio+cubemx,芯片是stm32f429bit6+w25q256fvrtthread版本是4.1创建工程就不说了,只需要基本工程就行,可以参考我之前的文章这里就直接说需要改哪些地方吧,在基础工程(串口正常打印)上,打开这3个功能(可以单独使用sfud或者sfud+fal),打开后修改相应的地方就行。

2023-12-13 00:07:30 475

原创 TEA5767,RDA5807FM接收简单使用,解析通信数据

看了许多文章,大多都是用的商家提供的代码修改的,虽然代码很全面,但我只是想接收一下FM听一下。就是那种几行代码就能解决,这里我记录一下我使用的代码,,直接就能扫描i2c设备地址,直接发送接收数据,还是挺方便的。接线:RDA5807TEA5767首先还是贴出我参考的文章吧,想学习的可以去原文章看看然后直接贴出我的脚本。

2023-11-07 23:48:46 682 2

原创 STM32使用RT-thread完成点灯,pwm,按键中断,定时器中断,ADC

开发工具使用的是RT-thread Studio。完成按键中断,adc读取,pwm输出与定时器中断功能

2023-10-24 17:45:10 716 4

原创 TypeError: only integer scalar arrays can be converted to a scalar index

修改:在使用前转换一下,添加一句。

2023-07-29 01:51:54 146

原创 荔枝派nano用shell脚本点亮oled(ssd1306/sh1107)

由于gcc交叉编译有问题,所以暂时只能用shell命令点亮屏幕了。首先是屏幕初始化init.sh(屏幕地址参考上一篇)虽然只能简单的显示,不过用来测试一下屏幕还是可以的。后面搞好交叉编译器就可以直接C语言驱动了。i2c驱动参考前一篇文章。然后运行,屏幕就亮了。

2023-07-20 13:48:23 248

原创 荔枝派Lichee Pi/planckpi/f1c100s添加i2c并驱动oled(sh1107/ssd1306)

添加i2c的设备树,编译出来进行替换(SD卡中已经有系统的可能需要全部编译uboot,linux,buildroot然后重新写入SD分区中,参考上面的博客)第一句就是写 命令(第一个是设备地址,第二个是oled的命令或者数据寄存器,第三个就是要写的命令或者数据),第二句是写数据(00命令,0x40数据)编译和写入SD卡后,启动系统,默认root,无密码。我们在连接好屏幕之后(具体引脚看设备树中添加的,我的sda是e12,scl是e11)就可以看到oled屏幕点亮了,只是屏幕是画的,因为还没有给显示的数据,

2023-07-19 23:10:08 717 2

原创 荔枝派licheepi_nano编译Linux记录

修改源码 dtc-lexer两个文件中的YYLTYPE 都加上extern。

2023-07-18 23:23:56 179

原创 荔枝派licheepi_nano编译uboot记录

如果arm-linux-gnueabi-gcc -v显示的交叉编译器版本没有改变,可以试试把老编译器的文件夹名字改了,然后把新版本的添加到老文件夹中(我也不知道是否有更好的方法)。然后又又又报错了Error: arch/arm/dts/.suniv-f1c100s-licheepi-nano.dtb.pre.tmp:59.1-10 syntax error。注意选择相应的板子,安装合适的交叉编译器,我之前安装的交叉编译器是4.9版本的,编译过程报错,提示编译器版本过低。我是直接改的源码中的变量。

2023-07-18 19:37:34 421

原创 Verilog实现串口收发

主要逻辑参考stm32篇的GPIO模拟串口,接收主要是捕获开始信号,然后定时采样获取8位数据位(未考虑停止位和校验位)使用robei eda仿真结果(发送的仿真信号,然后再将接收的信号输出)代码不是完整代码,仅仅把串口部分截取出来,如需使用请根据实际情况进行更改。

2023-07-12 16:19:03 220

原创 超简单GPIO模拟实现可变波特率异步串口收发(STM32)

使用外部中断捕获数据开始位,关闭中断,然后定时器计数清零重新计时,每隔1/波特率s采样一次数据,然后移位合成一个字节开启中断进入下一个等待接收状态(首先使用逻辑分析仪查看ch340串口数据波形,根据波形写接收逻辑即可。发送更简单,只需要发送开始位后每隔1/波特率s发送一位数据即可(注意使用定时器需要先开启。),最后再发送停止位。

2023-07-06 10:46:55 1094

原创 沁恒CH57x蓝牙(RISC-V)开发记录

沁恒CH57x蓝牙(RISC-V)开发记录,画了块ch571f和ch579m二合一的开发板,ch571是risc-v的芯片,ch579是m0的。之前一直用的stm32,刚接触risc-v开发还是碰到许多需要琢磨半天的问题。

2023-06-08 14:02:38 1187

原创 TCP简易服务端与客户端(Linux)实训学习四

TCP简易服务端与客户端,上面的都是传入main函数的参数,main函数中的形参argc就是参数的个数,**argv就是传入参数的数组(使用方法argv[index])。在本任务中可实现对ip和端口的设定,argv[0]就是"./a.out" argv[1] 是"aaa"这个命令和printf差不多,只是会在print的同时输出最近的错误信息,可以用来打印某些步骤出错(例如socket连接)4:gets有bug,没有长度限制,可以使用fgets(buf,100,stdin);在调用程序时可以传入参数,例如。

2023-06-02 18:15:04 116

原创 使用C语言修图(实训学习三)

bmp图片前54字节存放的是图片的熟悉描述,不能随意修改,图片后面的内容就全是图像信息,一般都是bgr的顺序存放三基色,简单的处理就只需要对rgb值进行修改(一般都是24位,每个基色占用1字节,范围0-255)3 拼接(暂时只能拼相同宽度的图片,不同宽度会错乱)只需要把新生成的图片前一部分图像填充其中一张,后一部分填充另一张。实训安排的任务是用C语言实现bmp图片的拼接(Linux环境)按照亮度转换公式,把三基色合成亮度赋给rgb,即rgb都等于y。1 将原图全变为白色,

2023-05-29 00:14:10 107 1

原创 C语言实现简易可导出文本的用户数据库(实训学习二)

简易数据库,只保存用户名和密码

2023-05-21 19:57:24 99 1

原创 实训学习一:C语言实现简单推箱子游戏

C语言实现简单推箱子游戏,可自由修改地图(自己创建)

2023-05-21 19:36:16 346 1

原创 STM32使用sr04超声波一收一发测距,可实现空间定位

发送端用的一个stm32来控制,发送与接收的同步信号使用的红外,接收端接收到红外信号后开启1us的定时器计时,发送端每个超声波模块发送间隔40ms(避免间隔时间太短,声波反射干扰)。使用的三个模块在不同位置发送超声波,然后接收端得出接收端与三发送端的距离,如果已知三发送端的坐标,根据三个距离值即可计算出接收端的坐标。这里需要用逻辑分析仪或者示波器来查看发送和接收的时间差,进行微调,以及消除某些干扰信号。hal库,这个有问题,还没有修改,可参考标准库的代码修改。

2023-05-11 16:11:41 802 2

原创 nanopi k2模块编译记录[一]

编译Linux内核出现:usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x50): multiple definition of `yylloc’;修改scripts/dtc目录下的dtc-lexer.lex.c_shipped文件中找到。kernel编译报错|/bin/sh: 1: bc: not found。

2023-03-17 22:48:17 139

原创 ESP8266访问https地址,ESP32

ESP8266访问https地址,ESP32访问https地址

2023-03-08 20:16:16 1457

原创 linux(kali)物理机根目录扩容,较简单步骤

之前安装了win10和kali的双系统,但是空间分小了,只分了20多个g,装不了几个软件就满了。于是从windows中又分了10个g准备给linux扩容。看了其他大部分教程都是使用lvm进行设置的,奈何我装的系统没有这个组(我没有分区挂载,直接把所有空间都挂在了根目录下),新创建组又不能合并。正当无计可施时发现系统自带一个分区工具

2023-03-03 14:31:53 377

原创 Visual Studio 创建C++项目错误无法打开源文件

Visual Studio 创建C++项目错误无法打开源文件

2023-03-03 11:43:36 1823

原创 Debian pip安装报错error: externally-managed-environment

大概意思就是由外部管理python的环境,Debian安装python包时不用pip install命令,而是直接使用apt install python3-包名,例如安装pymysql,使用sudo apt install python3-pymysql。

2023-03-02 17:07:51 12642 3

原创 开源STM32 、esp8266、PCB、ESP32资料

开源免费STM32资料,stm32f103c8t6驱动0.96寸oled(ssd1306),1.8寸lcd(st7735),NFC(rc522),ADC采样,距离传感器(VL53L0X),气压温度传感器(bmp280),程序以及PCB工具板都开源,github仓库如果能帮到您,还麻烦点亮下github的收藏小星星,如果有需要帮助的地方随时欢迎哈。后续我也会分享更多学到的知识...

2022-07-17 02:47:31 437

空空如也

空空如也

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

TA关注的人

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