- 博客(22)
- 收藏
- 关注
原创 IIC通信协议学习笔记
I²C通信协议是一种两线式串行总线,由飞利浦公司开发,用于微控制器与外围设备通信。采用一主多从结构,通过SCL时钟线和SDA数据线实现同步数据传输。协议核心包括起始/停止信号、设备寻址、数据传输和应答机制。主设备通过7位地址+1位读写位选择从设备,每个字节传输后需等待从设备的ACK/NACK应答。数据传输时SDA在SCL低电平时变化,高电平时保持稳定。I²C具有线与特性,总线空闲时两根线均为高电平。标准模式支持100kHz,快速模式达400kHz。理解其时序对嵌入式开发至关重要。
2026-03-29 00:55:26
460
原创 STM32开发学习笔记之八【摄像头视频显示】
本文介绍了使用STM32CubeMX配置STM32H743VIT6驱动OV5640摄像头并显示视频的工程创建过程。主要内容包括:1)新建工程并选择芯片型号;2)配置SD卡接口(SDMMC1控制器、FAT32中间件);3)LCD接口设置(SPI数据接口、GPIO控制接口、PWM背光);4)摄像头接口配置(I2C控制接口、DCMI视频解析模块);5)RCC时钟源配置(HSE时钟、时钟树);6)生成工程文件。文章详细说明了各外设的引脚配置、参数设置及注意事项,为基于STM32的摄像头应用开发提供了完整参考。
2026-01-30 12:41:35
1557
原创 STM32开发学习笔记之七【LCD显示图片】
本文介绍了使用STM32CubeMX配置STM32H743VIT6开发板驱动ST7735 LCD屏幕显示图片的过程。主要内容包括:1)创建新工程并选择芯片型号;2)配置SD卡接口(4位总线模式)和LCD接口(SPI4半双工主模式);3)设置GPIO控制引脚和PWM背光调节;4)调整RCC时钟源和时钟树参数;5)启用FATFS中间件支持SD卡文件系统;6)生成工程文件并设置代码生成选项。通过STM32CubeMX工具完成了硬件接口配置和工程创建,为后续图片显示功能开发奠定了基础。
2026-01-28 18:33:31
810
原创 STM32开发学习笔记之六【LCD显示文字】
本文介绍了使用STM32CubeMX配置STM32H743VIT6驱动ST7735芯片LCD屏幕的完整过程。主要内容包括:1)新建工程并选择芯片型号;2)配置SPI4接口作为LCD数据通信接口,包括引脚重定向和参数设置;3)配置GPIO控制接口和PWM背光接口;4)RCC时钟源配置及时钟树调整;5)工程文件生成与MDK开发环境设置。文章详细讲解了从硬件接口配置到软件工程创建的完整流程,为开发160×80分辨率LCD的文字显示功能提供了完整的技术方案。
2026-01-27 14:26:00
899
原创 STM32开发学习笔记之五【SD卡读取】
本文介绍了基于STM32H743VIT6开发板实现FAT32文件系统下SD卡数据读取的方法。首先通过STM32CubeMX配置硬件架构,包括SDMMC1接口(4位总线模式)、USB-OTG-FS(Device模式)以及RCC时钟源。然后添加FATFS中间件支持SD卡访问,配置USB为VPC模式用于数据传输。工程生成后,在MDK开发环境中补充核心代码,包括USB打印函数封装和SD卡文件读取逻辑。最终实现单片机直接读取SD卡数据并通过USB上传到PC的功能。文章详细记录了从工程创建到功能实现的完整开发流程,为嵌
2026-01-14 19:58:45
453
原创 BMP图像之24位色转16位色算法实现
本文介绍了BMP图像文件格式及其24位色转16位色的算法实现。BMP是一种无压缩的光栅图像格式,主要由文件头(14字节)、信息头(40字节)和像素数据组成。文件头包含文件类型、大小和像素数据偏移量;信息头记录图像宽度、高度、位深度等关键参数。文章详细解析了BMP文件结构,并提供了Python代码示例来手动读取BMP文件信息。对于24位色转16位色转换,重点在于RGB颜色空间的重新映射和像素数据的重组处理,同时保持4字节对齐的存储特性。
2026-01-12 21:21:51
948
原创 STM32开发学习笔记之四【SD卡U盘】
本文介绍了基于STM32H743VIT6开发板实现SD卡U盘功能的开发过程。通过STM32CubeMX配置硬件架构,包括SDMMC1(4位宽总线模式)、USB_OTG_FS(设备模式)和USB Mass Storage Class中间件。重点讲解了时钟树配置(主频480MHz,USB 48MHz,SD卡25MHz)和工程生成设置。在MDK开发环境中,主要工作集中在usbd_storage_if.c文件中实现存储介质接口函数,完成USB与SD卡的连接功能。最终实现将SD卡通过STM32作为U盘使用的读卡器功能
2026-01-11 01:37:33
368
1
原创 STM32开发学习笔记之三【按键】
本文介绍了使用STM32CubeMX配置STM32H743开发板按键控制LED灯的完整流程。首先通过图形化界面配置PE3引脚为GPIO输出控制LED,PC13引脚为外部中断输入检测按键。详细说明了时钟树配置(400MHz主频)、NVIC中断使能等关键步骤,并演示了工程生成与Keil开发环境对接。该案例实现了硬件初始化代码的自动化生成,为后续按键中断控制LED功能开发奠定了基础。文中包含大量配置截图,完整呈现了从芯片选型到工程生成的全过程。
2026-01-09 22:25:31
1309
原创 STM32开发学习笔记之二【USB串口】
本文介绍了在STM32H743单片机上实现USB虚拟串口通信的方法。首先通过STM32CubeMX配置工程,选择芯片型号并开启USB_FS接口和中断功能。接着配置USB中间件和时钟系统,确保USB接口获得48MHz时钟。然后在Keil MDK中启用MicroLIB优化资源占用,并在USB中断接收函数中添加回环代码,实现数据接收后立即转发。最后通过设备管理器确认虚拟串口驱动安装,使用串口调试助手测试成功实现了数据收发功能。该方案为STM32开发提供了便捷的调试信息输出通道。
2026-01-09 16:34:34
1225
原创 利用Zerotier虚拟局域网远程连接mySQL数据库(保姆级)
Zerotier是一款用于构建异地虚拟局域网的工具,通过网页后台创建虚拟网络并进行IP管理,用电脑上的Zerotier客户端连接各异地电脑到虚拟局域网。实现同一虚拟局域网下各接入电脑的数据访问。接下来我们一步一步的构建虚拟网络。
2026-01-06 12:20:56
167
原创 STM32开发学习笔记之一【点亮led】
本文介绍了使用STM32CubeMX和HAL库开发STM32单片机的基本流程,重点讲解如何配置GPIO引脚点亮LED灯。文章首先对比了STM32开发的四种方案(裸机编程、标准库、HAL库和LL库)的优缺点,选择HAL库作为入门方案。然后详细说明了使用STM32CubeMX创建工程、选择芯片型号、配置GPIO引脚(设置PE3为输出模式)、时钟源(RCC配置选择HSE)和中断系统(启用SysTick)的具体步骤。通过图形化界面完成硬件初始化后,生成代码框架导入MDK开发环境即可实现LED控制功能。该教程适合ST
2026-01-03 12:49:36
1617
原创 基于iTOP-4412开发板(精英版)的linux 4.14.2根文件系统移植
准备工作虚拟机:VM-Ware 15.0 pro操作系统:Ubuntu Linux 16.04交叉编译器:arm-linux-gcc 4.6.2BusyBox:busybox-1.26.2.tar工作文件夹:/home/用户名/work一、编译Linux命令集1、BusyBox源码获取Busybox官方下载地址:https://busybox.net/busybox功能简介https://blog.csdn.net/feelinghappy/article/details/92133067
2021-06-15 17:24:19
4842
2
原创 Ubuntu系统中使用VSCode(Visual Studio Code)
一、软件下载安装去官网下载文件:https://code.visualstudio.com/docs?dv=linux64也可以用ubuntu自带的软件商店下载,本帖就采用这种方法。案例采用ubuntu16.04,操作如下图:首先单击APP商店图标,弹出窗口第二步输入vscode搜索应用程序,第三步单击install安装,安装过程如图:二、启动软件vscode用两种方法均可以启动,即用鼠标点击程序图标或者在终端输入命令1、鼠标操作首先单击应用程序图标,第二步单击APP图标,第三步在窗口中找
2021-06-08 11:36:02
12868
2
原创 基于iTOP-4412开发板(精英版)的linux 4.14.2内核移植
准备工作虚拟机:VM-Ware 15.0 pro操作系统:Ubuntu Linux 16.04交叉编译器:arm-linux-gcc 4.6.2工作文件夹:/home/用户名/work一、内核源码获取1、从linux官网下载内核从linux官网下载内核,linux 官方网站是https://www.kernel.org/ 如下图所示:2、将内核拷贝到虚拟机中解压下载完成后,在虚拟Ubuntu中的工作文件夹中建立kernel文件夹并将下载的压缩包拷贝进去:解压缩xz压缩包:xz -d
2021-06-07 14:56:16
10700
9
原创 黑金AX7Z100 FPGA开发板移植LWIP库(二)PL端
前言上一篇博文中实验了PS端移植LwIP库的演示程序。本篇接下来基于Vivado17.4整理比较详细的PL端移植过程。一、Vivado 工程建立1、新建一个空工程,名称为net_lwip_pl。2、FPGA芯片选择xc7z100ffg900-2。二、配置PS&PL系统硬件1、工程建好以后,接下来要配置PS与PL两端的系统硬件,这样我们可以借助串口和APU核通过PL端连接的网络IP接通网络。首先单击左侧导航栏的Create Block Design建立图形文件取名top,单击OK。
2021-02-14 20:41:29
2490
1
原创 快速指数运算:平方-乘算法
快速指数运算:平方-乘算法RSA 加解密中存在指数运算 xax^axa。解密过程中运算的指数a非常大,通常会大于等于1024 bit。一般方法直接计算 xax^axa的值, 即xxx…需要的运算量非常大不实用。平方-乘算法设y的初值为x,将a写成二进制形式即0001010…。接下来从左到右数a的每一bit,第一个1不算,从第一个1开始后面遇到0就 y<=y2y <= y^2y<=y2,遇到1就y<=y∗x2∗,y<=y∗xy <= y*x^2*,y<=y
2021-01-31 23:19:19
6280
转载 ECC椭圆曲线详解
前言ECC英文全称"Ellipse Curve Cryptography"与传统的基于大质数因子分解困难性的加密方法不同,ECC通过椭圆曲线方程式的性质产生密钥ECC164位的密钥产生一个安全级,相当于RSA 1024位密钥提供的保密强度,而且计算量较小,处理速度更快,存储空间和传输带宽占用较少。目前我国居民二代身份证正在使用 256 位的椭圆曲线密码,虚拟货币比特币也选择ECC作为加密算法。从射影平面讲起古希腊数学家欧几里得的《几何原本》提出了五条公设。1.由任意一点到任意一点可作直线。2.一
2021-01-28 16:42:19
1902
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅