自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 【学习记录】软件spi

软件spi目前只支持了spi四种模式中的一种,后续用到会同步更改。已经有软件iic了,所以顺便把软件spi也做了。

2024-02-02 12:05:39 375

原创 【学习记录】软件iic

注: 移植主要对接.h文件相关io的宏 目前我使用的芯片平台主频为120Mhz。如果在其他平台使用 可能需要调试一下.c文件开头的延时。由于有时候出现硬件iic总线挂死的情况,所以记录一下软件iic的方法,代码来源网上资料整合。

2024-02-02 11:57:27 377

原创 【学习记录】记录一个优雅的方法在 C语言中插入汇编代码

首先s_flash_command_run定义为一个数组首地址为0x1FFFF000,所以经过强制转换s_flash_run_entry函数的入口地址即为0x1FFFF001。最近搞keaz128的flash读写时需要向一个寄存器写入0x80,发现其中一段代码很有意思,代码如下。查看反汇编发现数组中的内容正好是二进制代码,和数组内容一一对应。经过分析,并查看反汇编代码,结果如下。其中让我感到迷惑的是这两句。

2023-12-09 13:19:19 432 2

原创 【学习记录】ADBMS1818读取温度,电压,及使用IIC

刚刚搞完ADBMS1818的驱动程序,浅浅记录一下,备忘。

2023-09-19 17:07:19 1342 8

原创 按键单双击及长按事件判定(非硬延时)

按键作为十分常见的硬件外设,从一开始就会接触到,但是之前使用的都是硬延时来判断单双击和长按的,不仅会阻塞程序运行还会浪费性能,但是如果使用硬件定时器的话就有点浪费资源了。不久以前我在ESP32的一个项目上写过一个利用软件定时器的案件事件判断方法,但是需要建构在Freertos上,所以不是十分方便。现在给出我最近采用的方法。

2023-09-09 11:20:20 343

原创 【学习记录】GD32F303深度睡眠+闹钟唤醒

【代码】【学习记录】GD32F303深度睡眠+闹钟唤醒。

2023-09-05 15:56:14 509 3

原创 【学习记录】内存管理之分块内存管理

分块式内存管理由内存池和内存管理表两部分组成。内存池被等分为n块,对应的内存管理表,大小也为n,内存管理表的每一个项对应内存池的一块内存。内存管理表的项值代表的意义:当该项值为0的时候,代表对应的内存块未被占用,当该项值非零的时候,代表该项对应的内存块已经被占用,其数值则代表被连续占用的内存块数。比如某项值为10,那么说明包括本项对应的内存块在内,总共分配了10个内存块给外部的某个指针。

2023-09-01 22:26:02 109 1

原创 【学习记录】IIC驱动ICM42670+卡尔曼滤波+四元数姿态角解算

ICM42670陀螺仪可以使用iic驱动,单片机平台使用GD32f305VE。

2023-08-23 09:39:29 2074 3

原创 【学习记录】嵌入式操作系统中内存分配及任务切换

实时操作系统在创建任务的时候会给这个任务分配一个单独的栈空间,而不像裸机程序一样自始至终都是一个。这点参考ARM Cortex-M m3/m4权威指南可以得到验证

2023-08-15 16:06:11 63 1

原创 【低功耗】关于温度计的一些低功耗探索(基于STM32L051)

为什么要想起要搞一手低功耗呢?是因为我晚上打游戏的时候打着打着就很热,打开空调呢不一会就很冷,所以就心想有没有可以查看温度的东西方便我开关空调。嗯...然后我就在某宝上一搜。行!九块九,真便宜啊,但是作为一个刚刚入行的嵌入式工程师是不屑于某宝成品的。说干就干,我先是在网上找了相关资料,给我启发较大的一篇是 小米温度计的拆解。结合以上资料我又查找了一些别的资料然后制定了一个初步的方案。

2023-08-10 01:44:24 794 1

原创 环形队列缓冲区实际运用记录

然后是对实际存储空间arry分配内存,arry可根据实际选用的数据结构定义。注意的是int CQueueInit(CQueue** cq, int k)第一个参数必须是一个二维指针,不然对arry分配的内存传递不出来,或者还有其它两种方式在我。最近在GD32中遇到CAN数据接受的问题,为了防止数据丢失采用了环形缓冲区的结构来做数据缓冲。这里其实是定义一个M_CanQueue,它是一个CQueue类型的指针,开始并不会分配内存。环形缓冲区最重要的两点。

2023-08-01 16:54:41 181 1

原创 【学习记录】GD32 IIC读写BL24C256A 256Kbits(EEPROM)

这里trandirection参数表示读取还是写入,如果是读取在i2c_master_addressing函数内部会自动在最低位置1,如果是写入那么会自动将最低为清零。然后是读写的函数,这里给出单字节写入,单字节读取,随机不定长写入和随机不定长数据读取。最常用还是最后两个,单字节读取只能读取上一次写入的地址不能指定地址。这里在随机读取写入的时候并没有限制一页多少个,所以在进行长字节的写入和读出的时候需要对这个函数在封装一遍以分配写入读出的页数。最后附上gd32官方提供的iic读写软件流程。

2023-06-28 11:23:53 1401 4

原创 【数据结构笔记备忘】串,数组,广义表

然后是比较重要的两个串匹配算法,分别是暴力匹配和KMP算法。笔记暂时纪录在这,后续如果有改进和修改会同步更新。参考书籍《数据结构第二版——严蔚敏》大部分的说明性语言都在注释中。

2023-04-11 21:33:50 65

原创 【奇思妙想】究极无敌精简操作系统,不到200行代码实现任务调度

基本思路,以前基本都是使用前后台程序,每次都是在主循环判断哪个任务触发了,才回去执行,如果多个任务同时触发,那就只能按照顺序依次执行,经过改进之后可以根据优先级选择任务优先级较高的任务先调用,每次将任务链表中的所有没有被挂起的任务全部都执行一遍之后才能进行第二轮任务调度。可以看到任务一运行两次之后被挂起,之后便没有运行,这个代码初步先这样,后面如果我在使用中有新的功能加入,这里也会更新。可以实现多优先级的任务调度,任务挂起,设定任务运行次数。废话不多说,这个操作系统能干什么。

2023-03-20 15:18:11 137

原创 【数据结构笔记备忘】单链表,双向链表,循环单双链表

单链表,双向链表,循环链表的一些常用的操作函数,这里注释只是简单说明,在具体实现时会有更详细的说明。笔记暂时纪录在这,后续如果有改进和修改会同步更新。以上示例的运行结果如下(输入“斗破苍穹”)参考书籍《数据结构第二版——严蔚敏》大部分的说明性语言都在注释中。以上函数的具体实现方式。以上示例的运行结构如下。两个简单的单链表应用。

2023-02-01 15:16:03 171

原创 【数据结构笔记备忘】顺序表

数据结构笔记备忘,顺序表

2023-01-31 19:29:22 86

原创 【学习记录】一个简易的软件定时器

有时候我们在进行一些操作的时候需要周期性的完成一些操作,操作一定时间或者操作几次后关闭,为了避免在主函数加入延时而影响系统的实时性,这里给出一种简易的软件定时器实现方案首先是定时器初始化的俩结构体,赋值就在实例化的时候进行,免得在写一个Init函数了 例如这样初始化然后就是几个要用到的函数我是将soft_Tim_init放在硬件定时器的1ms中断中的,来提供时基,用户调用的soft_Tim_callback是一个弱定义函数,由用户重新定义。

2023-01-11 18:44:04 206 1

原创 【学习记录】关于移植简单图形库控制oled的一些总结

简单图形库的移植

2023-01-05 15:08:45 318

原创 【学习记录】一些时常用到的功能函数和奇特的算法

1 数字转字符串2 字符串的拷贝如果环境支持可以使用string.h 中 strcpy 函数或者他的升级安全版本strcpy_s。strcpy_s 是系统的安全函数,微软在 2005 后建议用一系统所谓安全的函数,这中间就有 strcpy_s 取代了 strcpy;strcpy 函数没有方法来保证有效的缓冲区尺寸,所以它仅仅能假定缓冲足够大来容纳要拷贝的字符串。在程序执行时,这将导致不可预料的行为,容易导致程序崩溃。在一些苛刻的环境中时我们也可以自己弄一个自己的strcpy函数。

2023-01-02 22:55:33 61

原创 【学习记录】DHT11驱动移植

DHT11驱动移植

2023-01-02 21:59:28 213

原创 【学习记录】0.96寸oled驱动移植ssd1306(iic)

驱动移植

2023-01-02 19:54:04 423

原创 【学习记录】标志位的一些使用方法(备忘)

标志位的使用

2023-01-02 15:30:58 149

原创 基于esp32的物联网设计

本篇是最近在学校做一个物联网温室控制的课题,在此基础上做了一些对物联网的探索物联网物联网(Internet of Things,简称IoT)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、 连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。物联网是一个基于互联网、传统电信网等的信息承载体,它让所有能够被独

2022-03-11 12:15:56 14211 3

原创 【LVGL】笔记一,lv_obj基础对象

lVGL基础用法笔记整理

2022-01-22 13:31:09 3105

原创 【学习笔记】状态机编程

使用状态机来实现状态切换,备忘。#include <stdio.h>#include <conio.h>#pragma warning(disable:4996)/*四要素state 状态event 事件action 动作transition 变换*/typedef enum{ sta_go = 0, sta_down, sta_right, sta_light, sta_stop}state;state now_

2022-01-19 13:31:35 1212

ATJ2127数据手册_V1.0原版加有道机翻.zip

ATJ2127数据手册_V1.0原版加有道机翻 ATJ2127数据手册_V1.0原版加有道机翻

2021-07-24

空空如也

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

TA关注的人

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