
嵌入式
文章平均质量分 70
slimmm
一念成魔,一念成佛
展开
-
[ESP32]搭建idf开发环境
esp-idf环境搭建原创 2022-09-09 17:37:14 · 464 阅读 · 0 评论 -
[数据结构和算法]二分查找近似值
C语言二分查找原创 2022-09-08 16:54:43 · 546 阅读 · 0 评论 -
Nuttx驱动(二)实例
Nuttx驱动例程原创 2022-08-29 10:43:29 · 1443 阅读 · 0 评论 -
Nuttx驱动(一)简介
Nuttx驱动框架简介,记录一下学习和调试过程原创 2022-08-25 19:56:24 · 2930 阅读 · 0 评论 -
[GUI] ESP32(idf)触摸屏(XPT2046)驱动及驱动校准
1. XPT2046简介XPT2046是一款4线电阻式触摸屏控制器,包含12位125 kHz采样SAR型a /D转换器。XPT2046可以通过执行两个A/D转换来检测按下的屏幕位置。…下面简单的了解下吧内部逻辑电路引脚描述基础应用电路读写时序2. XPT2046驱动XPT2046 用的是SPI驱动,不过这里使用的是模拟的spi,原因有三:1. XPT2046 不支持太高的SPI速率2. ESP32上没有足够的SPI了,一个60MHzSPI用来驱动LCD屏、一个16MH原创 2021-09-06 23:00:18 · 8233 阅读 · 9 评论 -
[GUI]stm32搭载3.5寸SPI-TFT屏移植LittleVGL
唠几句,记录下移植笔记新项目用到LVGL,也是首次接触GUI库,所以Emmmm,,,学呗!!!之前都是直接在LCD屏上画点、画线、画圆、画个矩形、画个多边形、显示个字符串、显示张图片而已,没有用过GUI库,在网上找了点学习资料,然后把LVGL库的用法整体过了一遍。寻思着搞个屏练习一下,然后趁着周末把SPI屏(IFI9488/ 480*320)驱动起来,甚至还优化了绘图部分的程序,下面是部分优化记录方式一:移植淘宝卖家提供的Demo串口日志:刷整屏用时3ssystem Init compla.原创 2021-07-19 00:27:50 · 4589 阅读 · 10 评论 -
[stm32]用定时器编码模式解码EC11旋转编码器
1.客官,要不先康康内脏左调右调没调出来,那就拆开看看,到底吃了几碗粉再做个搭桥手术吧2.怎么驱动呢先看看EC11旋钮旋转时的波形吧1. 首先想到的是用IO中断咯在中断中判断哪路IO先来就可以确定是正旋还是反旋咯2. stm32不是有定时器编码模式么,正好可以用来解码EC11直接上代码吧!//定义一下IO口#define KEY_Port GPIOA#define KEY_A GPIO_PIN_0#define KEY_B GPIO_PIN原创 2021-04-13 17:45:06 · 4864 阅读 · 3 评论 -
[玩转BLE]奉加微PHY6212初体验(烧录篇)
芯片简介ARM Cortex-M0 32位处理器存储512KB/2MB系统闪存128KB ROM138KB SRAM,睡眠保持8通道DMA功耗评估睡眠模式1,只可通过IO唤醒,电流:0.7uA睡眠模式2,可通过RTC唤醒,电流:2uARx峰值电流:6.7mATx 0dBm峰值电流:6.7mA蓝牙速率BLE 2Mbps支持长度扩展(DLE)最高数据吞吐量1.6MbpsBLE5.0AES.原创 2020-09-27 11:36:02 · 8117 阅读 · 8 评论 -
【RT-thread】如何将RT-thread系统移植到stm32
1.RT-thread简介T-Thread(Real Time-Thread),是一个嵌入式实时多线程操作系统。在 RT-Thread 系统中,任务调度通过线程实现的。RT-Thread 主要采用 C 语言编写,浅显易懂,方便移植。针对资源受限的微控制器(MCU)系统,可通过方便易用的工具,裁剪出仅需要 3KB Flash、1.2KB RAM 内存资源的 NANO 版本;而对于资源丰富的物联网设备,RT-Thread 又能使用在线的软件包管理工具,配合系统配置工具实现直观快速的模块化裁剪,无缝地导入丰富原创 2020-09-02 16:17:42 · 2152 阅读 · 0 评论 -
[stm32]stm32硬件定时器复用——一个定时器承载多组定时任务
之前写过一篇使用stm32的滴答定时器构建多组软件定时器的博客,有感兴趣的可以看一下:stm32滴答定时器构建多组软件定时器使用滴答定时器构建软件定时器,其中定时器的超时是靠轮询来实现的,所以精度不高。但是实现方法及其简单,甚至都不用配置什么外设,对于一般的定时任务来说够用了。如果是对定时精度较高的任务来说,我们最好用硬件定时器来实现了。但是MCU的硬件定时器资源有限,而且定时器开多了可...原创 2019-05-16 14:45:56 · 5425 阅读 · 1 评论 -
[stm32]如何抽象模拟的I2C驱动,模拟的I2C驱动封装
一般的,I2C驱动的速率并不高,最高貌似只有400KHz,而且使用stm32硬件IIC会出现这样那样的问题,所以使用IO口模拟是最好的选择。那么我就在想了,能不能把模拟的I2C驱动当做一个对象给封装起来,以后使用的时候直接调用即可,不用再过多的去配置IO和调试I2C的时序了。如果是用C++,我们可以直接使用类将其封装起来class simulate_IIC{public: simul...原创 2019-01-24 16:20:42 · 826 阅读 · 1 评论 -
[Linux]Linux常见目录说明
【Linux常见目录说明】目录目录描述/bin存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。/etc存放系统管理和配置文件/etc/rc.d启动的配置文件和脚本/home存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示/usr用于存放系统应用程序...原创 2019-01-24 10:24:53 · 413 阅读 · 0 评论 -
[stm32]stm32L低功耗程序框架
MCU:stm32L031K6T6芯片的主要的低功耗特性Features• Ultra-low-power platform– 1.65 V to 3.6 V power supply– -40 to 125 °C temperature range– 0.23 µA Standby mode (2 wakeup pins)– 0.35 µA Stop mode (16 wakeu...原创 2018-12-08 14:31:09 · 7380 阅读 · 1 评论 -
[数据结构和算法]LZ77压缩算法三部曲——1.KMP算法(C语言)
KMP算法的理论部分就不在赘述了,有不懂的小伙伴可以参考这个帖子,感觉写的挺不错的。从头到尾彻底理解KMP个人比较喜欢简单粗暴的直接上代码,又看不懂的小伙伴可以下下面评论提出来。下面的程序是为了后面的LZ77 压缩算法做铺垫的,其实现的是从源数据中找到与匹配数据最长的数据的坐标和匹配长度。绕的有点晕哈;举个栗子:字符串s = “a b a c a a b a c a b a c a b ...原创 2018-11-12 12:04:19 · 1874 阅读 · 2 评论 -
[数据结构和算法]LZ77压缩算法三部曲——3.解压算法(C语言)
压缩算法后面有需要再补写,先记录一下解压算法吧。压缩算法用Java写的,压缩的是字节流。(测试原数据1024bytes–压缩后为201bytes)直接上菜吧#include <stdio.h>#include <stdlib.h>#include &a原创 2018-10-27 14:10:06 · 1778 阅读 · 1 评论 -
[stm32]stm32F4串口DMA发送问题解析
使用stm32 cubeMX配置生成的工程发送数据的时候只能发送第一包数据,后面的数据直接跳过了,过了, 了,,,仿真的时候没有任何问题,可以打印所有数据上图: 分析: 查阅stm32F4中文参考手册 使能这种模式(将 DMA_SxCR 寄存器中的 EN 位置 1)时,数据流会立即启动传输,从源完全填充 FIFO 如果 DMA_SxNDTR 寄存器达到零、外设请求...原创 2018-09-16 20:55:36 · 6763 阅读 · 0 评论 -
[stm32]stm32滴答定时器构建多组软件定时器
stm32有很多组定时器,处理一般业务已经足够用了。 但是杀鸡焉用牛刀,对时间精度要求不高的场合可以考虑使用软件定时器,使用方便,快捷。 怎么实现呢?其实并不难,就是使用回调函数即可。1. 先将使用到的参数用结构体封装一下吧#define get_time HAL_GetTick()typedef void (*pfunc)(u8);enum task_tm...原创 2018-09-17 13:42:24 · 2239 阅读 · 0 评论 -
[stm32]stm32按键外部中断,如何消抖
讨论一下stm32下按键外部中断如何进行有效的消抖工程的代码是直接使用stm32 cubeMX进行配置生成的,下面就一起讨论吧。1. 在中断处理服务函数中注释清除中断标志的语句,防止按键抖动而不断的进入中断服务程序中2. 进入回调函数后先进性延时,一般为10ms,进行消抖,然后再判断引脚的电平状态3. 在结束时一定注意要延时一段时间,然后才清除中断标志,而且要相对消抖时间要长一些,目的是为...原创 2018-09-22 18:10:05 · 43959 阅读 · 20 评论 -
[stm32]stm32F4输入捕获原理
捕获原理假如我们要捕获如图所示波形的脉宽。1.先设置定时器为向上计数模式2.设置定时器的采样通道channelx为上升下降沿捕获,所以在t1时刻,上升沿就会捕获到当前CNT的值,随即将CNT清零3.在t2时刻下降沿会捕获CNT的值,记为CCRx24.根据定时器的频率,以及期间溢出的次数,即可算出|t1-t2|的时间,从而得到高电平脉宽。如,在高电平期间采样定时器共溢出N次,则总的计数次...原创 2018-09-26 11:23:45 · 5970 阅读 · 1 评论