自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白杨木屋

白杨木屋

  • 博客(111)
  • 资源 (5)
  • 收藏
  • 关注

原创 百度云链接失效问题与解决

目前博客的资源通过百度云盘分享,但是由于博主不小心整理的云盘,所以博客的资源路径有了改变,导致链接失效,如果需要下载,请留言或与我联系。

2021-01-03 16:14:48 3884

原创 机器学习入门的概念

如果你刚刚入门机器学习,会接触到了非常多的概念。比如人工智能,机器学习,深度学习,神机网络,强化学习,各种算法等等。首先了解这些知识点所在的层级,以便进一步的深入学习。

2023-08-16 20:01:05 829

原创 《流畅的python》阅读笔记 - 第八章:对象引用,可变性和垃圾回收

这里可以看到,a的id(地址)已经改变了,也就是说,把12装到一个盒子里,然后贴上a和b标签,但是后来a标签贴到另外一个盒子去了,所以b标签还是贴着原来值为12的盒子,所以b也就不受a的 改变而改变了。第2步,把b标签贴到a标签标记的盒子,这样无论是a还是b标签,都贴到了同一个盒子,第3行把a标签标记的盒子再装入一个4,这样b访问b标签的盒子也就收到了改变,这里你可以协助草稿纸来画一个示意图,很好理解,a标记的盒子指的是贴着a标签的盒子。如果按照我们上文的思路,它应该输出24,可事实却不是,

2022-12-09 00:38:58 497

原创 《流畅的python》阅读笔记 - 第七章:函数装饰器和闭包

既定一个函数,那么如果需要增强一些功能,最简单的方法就是修改这个函数,但是这就需要改动以前的代码, 这可能引入一些新的问题,甚至如果函数不能被修改,这种操作就无法实现。python函数装饰器提供了这样一个功能:在函数外实现对函数功能的修改,请具体参考以下几个示例:输出这里,我们使用来装饰函数,发现原本的语句没有打印,反而运行了,这是装饰器的核心功能——它替代了原先的函数,我是这么理解的:第10行调用了,由于它被装饰器装饰,所以它其实等于:,注意是返回值,而不是函数本省。似乎还不知道它有什么作用?现在我们

2022-12-04 02:54:48 669

原创 《流畅的python》阅读笔记 - 第六章:使用一等函数实现设计模式

设计模式:可复用面向对象软件的基础》提出了23个设计模式,其中16个在动态语言中“不见了”或者是简化了,也就是说,设计模式是一种程序的设计的思想,不过也和具体的语言语法有关系。所以我感觉即使是其他语言的设计模式,仍然有学习的价值,只是我们使用的时候,要熟悉两者的语法。

2022-12-02 17:44:11 491

原创 《流畅的python》阅读笔记 - 第五章:一等函数

可以看到他们的顺序是反着的,虽然都是按a,b,c的顺序,但是由于我们传入参数的时候有指定名字,所以python会严格按我们名字来传值,无视位置,这个在实际开发中可以增加程序的可读性,程序员也不用刻意记住位置,更重要的事,如果一个函数有10个参数,而我们只需要传入其中的2个,那么可以使用关键字,这样程序设计会大大简化。你可以使用“=” 来给函数取别名,我能想到的应用就是增加程序的可读性,比如某一个函数在不同的应用中可能有不同的侧重点,可以通过“改名字”的方法来让程序更容易读懂。这种也是C语言的传参方法。

2022-12-01 22:48:01 542 1

原创 《流畅的python》阅读笔记 - 第三章:字典和集合

用来检测一个object对象是不是一个object_type类型.所以用来检测object是不是映射类型.

2022-11-18 00:11:05 404 1

原创 《流畅的python》阅读笔记 - 第二章:数据结构

在《算法》一书中,数组,链表称为数据结构.包,队列,栈称为类型,在《流畅的python》第二章中,首先介绍了python几种内置(即不用程序员实现,python自带)的类型:《流畅的python》中列图示了可变和不可变序列的差异,在我看来,可变数据多了一些可以操作数据的方法,增删,修改值等.list列表是最基础的可变序列,类似C语言的数组,只是它更灵活一些,它是容器序列,存放的元素数据类型可以是不一样的.

2022-11-15 01:17:13 145

原创 《流畅的python》阅读笔记 - 第一章:python数据模型

由于 《流畅的python》是进阶的python书籍,在阅读的时候有些内容还需要查阅相关书籍补充基础知识,所以在此记录一些理解.

2022-11-14 01:05:27 388

原创 Home Assistant : 一些问题的记录

最近又开始使用HomeAssistant,第一次安装HA和esphome跑了一下ws2812就没有再继续了.安装HA:工控机的VM虚拟机和virtualBox虚拟机都安装过HA,一开始都正常,但是小2天后都出现内核同步等待超超时的错误,后来换树莓派和台式机的VM虚拟机安装,目前这2个设备还在运行.怀疑可能是工控机安装的时候,内存分配只有1G导致的,或者是工控机的系统问题?现象是一开始运行是OK的,出现内核同步错误以后,再重新安装就还是一样的错误.还在闲置的手机安装个HA容器,大概花了一天,就运行起来很卡,

2022-06-18 16:27:23 4281

原创 vscode git commit -m 无法输入中文问题与解决

前几天发现vscode 在使用git 提交程序版本的时候竟然无法输入中文:一开始以为是vscode 的原因,今天才发现是 输入法的问题,我一般使用搜狗输入法,切换成微软的输入法既可以输入中文了。:)...

2021-02-18 02:12:55 3007 13

原创 设备接入ONENET(5)esp8266 订阅 onenet 主题(arduino)

本文假设你有一定的编程基础,并且对MQTT和OneNET有一点了解。1. 简介esp8266 作为一款带 WiFI 收发硬件的 MCU,是可以直接与 OneNET平台连接的,好处就是节约了一颗MCU的成品,对于不熟悉 esp8266 的用户使用 SDK 的方式开发可能有一定困难,本文使用 arduino 的方式,示例了esp8266 如何订阅一个主题。2. 准备Arduino IDE(软件) :Arduino IDE 是开发Arduino一个简易的IDE环境NodeMCU(硬件):NodeM.

2021-02-07 23:15:14 3637 8

原创 esp笔记(10)esp8266 驱动 ds18B20 多点测温

ds18b20 简介DS18B20 的测量范围为 -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C范围内,精度为 ± 0.5°C ,其IO只有3个:VCC,GND,和 DQ,其中 DQ 为单总线,可以输出和输入数据,特别的,多个 18b20 的 DQ 可以连接到 MCU 同一个 IO 口上,每个 18b20 都有一个 唯一ID,MCU通过该ID来读取指定传感器的温度值。详情:DS18B20 datasheetds18b20 是通过总线竞争来避免数据干扰的,详见:DS18B20单总线策略的分

2021-02-02 21:47:52 4239 2

原创 STM32F1x HAL库学习笔记(12)硬件 SPI 的配置

本文开发环境:MCU型号:STM32F103C8T6IDE环境: MDK 5.27代码生成工具:STM32CubeMx 5.6.1HAL库版本:STM32Cube_FW_F1_V1.8.3本文内容:STM32CubeMx 配置 硬件 SPI 主机文章目录一、硬件 SPI 的使用二、SPI 的配置1. CubeMx 配置基础配置SPI 配置生成工程三. HAL 库中 SPI 的 API 函数四、其他一、硬件 SPI 的使用SPI 比 I2C 速度更快,通常可以设置为9M或1.

2021-01-29 00:50:47 3219 5

原创 esp笔记(9)Adafruit NePixel 库 驱动 ws2818 全彩 LED 灯

ws2812 是一款非常常见的RGB灯,其内部集成了3色的LED灯和一个处理IC,可以通过时序来控制灯光的颜色,它的外部只有VCC,GND,输入IO口(用来读取数据),输出IO口(用来级联),由于 ws2812 资料以及非常丰富,这里不再赘述。在Arduino中,可以使用第三方库来非常方便的驱动。首先打开库管理,在搜索栏中搜索 NeoPixel 库,本文下载的是 Adafruit NePixel 库,在IDE中,还有其他的库供我们选择:安装完毕以后,就可以来运行程序示例,查看效果了:我们在第三方库

2021-01-18 01:43:49 2644

原创 《时间触发嵌入式操作系统》学习笔记

《时间触发嵌入式操作系统》这本书已经有一些年份了,他是以古老的51单片机(8051)作为控制器讲解的,本书涉及到一些硬件基础知识,这些可能在平时开发中已经熟悉,软件部分则介绍了时间触发的嵌入式系统的设计和原理。本章主要概述了几种系统:信息系统:这类系统主要用来处理大数据,使用到了数据库桌面应用程序:这类系统主要用以开发桌面应用,电脑端的程序。实时系统:及时响应,典型应用飞机等需要立即响应的工程嵌入式系统:至少包含一个MCU的系统,各种家用电器,如录像机,微波炉等。时间触发系统:关注时间,固定的

2021-01-07 00:49:42 1029 2

原创 DIY 基于51单片机的电子温度计的总结

总结一下这次画PCB的问题,以前都是写软件,使用传感器之类的也只是用模块连接杜邦线,使用模块的好处就是方便,但是对电阻电容的理解非常肤浅,只知道其大概作用,并不知道确认它们的值。目前画了2个PCB主要出现以下几个问题:元件封装不对应:RGB LED灯第二版了还是出错忽略单片机的驱动能力:用51单片机的LED口做驱动口驱动led灯,导致灯光偏暗对元件结构不够熟悉:自锁开关是组独立,以前一直以为是并联到一起的,导致实际PCB需要自己引线连接,否则无法闭合。数码管较大:第一次画的时候直接在立创EDA中

2021-01-05 16:34:26 1654 3

原创 设备接入ONENET(4)ONENET虚拟MQTT设备 simulate-device 使用

simulate-device 可以用来模拟硬件设备接入,有助于MQTT设备的调试。可以在调试窗口中,查看MQTT发出原始数据,也可以在 translator选项中,输入原始数据,根据原始数据解析,以便查看设备产生的数据是否正确:simulate_device 百度云下载提取码:1234本文创建了2个LED设备:LED1LED2产品ID:365646产品ID:365646设备ID:617446846设备ID:617446887鉴权信息:led01鉴权信息:l

2020-08-15 18:43:28 5669 6

原创 树莓派使用 python IIC 驱动 OLED 刷新率低问题与解决

OLED屏幕为128x64,使用树莓派跑luma库的例程font_awesome.py时候,发现图标就切换的时候,有很明显的上到下的刷新效果,后来发现是I2C速率问题,因为树莓派默认的IIC是100Khz,导致帧率较低,后来改为400KHz以后,效果理想,当前环境:-IIC:400KHz-python库:luma-python版本:python3-硬件设备:树莓派Zero-操作系统:Noobs回顾一开始我使用的是Adafruit_Python库,刷新例程中的image.py的时候,发现猫图片有

2020-08-14 18:52:35 2671 3

原创 设备接入ONENET(3)STM32 + ESP8266(MQTT协议)接入云 :官方例程移植笔记(HAL+LL库)

移植本意应该是指通过修改,使得运行原先在另一个平台可运行的程序。STM32CubeMx 本文简称 Mx1. 概述麒麟座的例程使用的是标准库,ST后续推出更新的 LL库 和 HAL库,其中LL库与标准库类似,而 HAL 则更倾向于兼容通用性,体积和效率则没有优势,如果你想在自己的工程中使用麒麟座的例程,那么移植工作是难以避免的。移植工作主要是硬件的设配,所以首先需要了解麒麟镇开发板例程使用的基本情况: STM32F1 Uart1..

2020-08-07 17:51:39 3967 15

原创 设备接入ONENET(2)STM32 + ESP8266(MQTT协议)接入云 :使用 OneNET 官方麒麟座开发板例程

一、麒麟镇官方资料麒麟座官方资料整理帖子:开发板资料下载,(长期更新,首次使用须知)本文使用的示例工程:链接:OneNET-Mini板-V1.x提取码:1234二、设配外部晶振中移的开发板板载 MCU 为 STM32F103RCT6,本文使用的芯片为 STM32F103C8T6 ,理论上正确接入 ESP8266 以后,是可以直接使用开发板提供的例程进行调试,但是需要注意,麒麟座的外部晶振为 12M,而通常通常我们系统板子为8M,所以如果不更换外部晶振,需要修改stm32f10x.h头

2020-08-06 14:13:11 2666 6

原创 STM32 使用 中移 OneNET 开发板例程 串口打印乱码问题与解决

中国移动推出的物联网开发板使用了常见的 STM32F1 开发板 和 ESP8266,所以理论上我们可以使用自己的 STM32 和 ESP模块,通过下载开发板例程来实现一些示例的工程,但是你可能会发现串口乱码现象。这个问题是由于我下载的开发板资料外部晶振是12M,而我们常用的外部晶振是8M,导致时序问题。如果你使用逻辑分析仪,串口波特率选择自适应,也是可以读取到串口的值的。所以,如果不换外部晶振,可以通过修改代码来实现:以下代码片段在stm32f10x.h中,可以查找HSE_VALUE宏定义来定位:

2020-08-05 22:10:36 576

原创 设备接入ONENET(1)PC + ESP8266(MQTT协议)接入云 :使用 OneNET 的 ESP AT固件

对于MCU,无线控制可以使用WiFi,蓝牙,射频,红外甚至声控等等,如果需要实现远程的控制,我们需要设备联网,物联网需要借助云平台,云平台实现了这个功能:接收联网设备的数据,或者将数据下发到联网的设备中,如果我们有多个设备,那么借助云平台,就可以达到远程控制的效果。目前提供这一平台的有阿里云,涂鸦,OneNET 等等,本文以 oneNET 作为示例。本文使用刷入OneNET固件的方法,你甚至不需要了解MQTT协议,既可以实现远程控制。硬件清单除了开发必要的个人计算机意外,只需要:esp8266:e

2020-07-31 20:53:56 10636 33

原创 MPU9250 使用 DMP 输出姿态角:DMP 库到 STM32 平台移植笔记

本文开发环境:MCU型号:STM32F103C8T6IDE环境: MDK 5.27代码生成工具:STM32CubeMx 5.6.1HAL库版本:STM32Cube_FW_F1_V1.8.0本文内容:STM32F1x HAL库硬件 I2C 通信MPU9250 使用 DMP 输出姿态角:Roll,Pitch,YawMPU9250 中 DMP 的移植附件:MDK5 STM32F1 示例工程MPU9250 中文手册MPU9250 英文参考资料DMP 官方驱动库正点原.

2020-07-29 22:15:51 17687 94

原创 hx1838 红外遥控(1):接收时序的解码

本文开发环境:MCU型号:STM32F103C8T6IDE环境: MDK 5.27代码生成工具:STM32CubeMx 5.6.1HAL库版本:STM32Cube_FW_F1_V1.8.0本文内容:STM32 使用 定时器捕获功能捕获红外时序解码 hx1838 时序附件:MDK5 示例工程红外遥控器 + 红外接收头 :测试过程请注意遥控和接收头的距离不要过远,本文遥控在1m以上会有不稳定现象,实际操作可以使用示波器或逻辑分析仪捕获波形,保证接收头收到的遥控.

2020-07-20 16:36:18 19449 7

原创 STM32F1x HAL库学习笔记(11)定时器配置及中断(溢出中断,PWM输出,输入捕获)

本文开发环境:MCU型号:STM32F103C8T6IDE环境: MDK 5.27代码生成工具:STM32CubeMx 5.6.1HAL库版本:STM32Cube_FW_F1_V1.8.0本文内容:STM32CubeMx 配置 定时器溢出中断PWM输出输入捕获附件 :MDK工程:定时器溢出中断MDK工程:定时器PWM输出MDK工程:定时器输入捕获一、 定时器STM32 定时器其实就是一个计数器,用户可以设置计数的个数,方向(数值越来越大,或数值越来.

2020-07-16 20:26:16 14399 7

原创 ws2812 程序设计与应用(2)DMA 控制 PWM 占空比(双缓存降低内存消耗)

本文开发环境:MCU型号:STM32F10389T6IDE环境: MDK 5.27代码生成工具:STM32CubeMx 5.6.1HAL库版本:STM32Cube_FW_F1_V1.8.0本文内容:STM32 使用 DMA+PWM 方式驱动 ws2812(x4)附件:MDK5 示例工程一、DMA 的双缓存模式STM32 系列的 MCU DMA 可以搬运2个源地址的数据,DMA 自动在2个地址A和B中来回切换,可以运用于搬运大数据:当DMA在搬运A数据时候,MCU.

2020-07-15 14:42:46 4037 24

原创 DMA+Timer 产生 PWM 多出一个波形问题

我在调试ws2812的时候吗,发现灯光的数据一直和预先的不符合,简化了程序逻辑依然看不出有什么问题,最后通过逻辑分析仪发现,PWM多出了一个波形,明显的,这导致所有的数据错了一位。事实上这不是硬件上的BUG,猜测原因:因为每一次DMA请求是Timer的溢出中断产生的,所以在DMA请求前,就已经有一个PWM产生了,那么从时序看上,就多出一个PWM波形,但这并不是DMA产生的。问题回顾uint16_t test_arr[48] = { 59,29,59,5

2020-07-14 15:37:38 1902 2

原创 ws2812 程序设计与应用(1)DMA 控制 PWM 占空比原理及实现(STM32)

本文开发环境:MCU型号:STM32F10389T6IDE环境: MDK 5.27代码生成工具:STM32CubeMx 5.6.1HAL库版本:STM32Cube_FW_F1_V1.8.0本文内容:STM32 使用 DMA+PWM 方式驱动 ws2812(x4)附件:MDK5 示例工程WS2812 中英文数据手册文章目录一、WS2812 简介时序传输二、ws2812 驱动的几种方式三、DMA+PWM+TIM 驱动 ws2812四、STM32CubeMx 配置基础.

2020-07-11 21:11:51 14617 31

原创 RT-Thread 笔记(4):RT-Thread 使用AT软件包驱动ESP8266

本文使用了At软件包后程序ROM较大,固使用了大容量型号:STM32F103ZE请确保系统有一个可用的串口设备,需要用以连接 esp8266,可参考:《RT-Thread 笔记(3):RT-Thread 添加一个串口设备》文章目录一、RT-Thread Stuido 软件包二、软件包的添加与应用1. 添加软件包2. 配置软件包3. 应用三、硬件连接四,验证一、RT-Thread Stuido 软件包RT-Thread 社区提供了丰富的软件包,软件包是具体实现某一功能的代码库,如at软件包,将..

2020-07-07 19:31:17 2344 2

原创 RT-Thread 笔记(3):RT-Thread 添加一个串口设备

文章目录一、添加一个串口设备1. 确定IO口2. 编辑 board.h2.1 打开board.h2.2 添加代码2.3 查看串口设备3. 程序设计3.1 官方示例程序3.2 程序的使用4. 测试一、添加一个串口设备本文简记了如何新增和使用串口2设备,更多请参考官方文档:https://www.rt-thread.org/document/site/programming-manual/device/uart/uart/#_11RTT 中外设作为设备存在,在建立工程的时候,一般串口1被作为系统默认

2020-07-06 22:21:51 8105 4

原创 RT-Thread 笔记(2):RT-Thread 开发:应用开发与设备开发

一、RT-Thread 开发方式当嵌入式程序员使用一款MCU开发一个功能时,程序都涉及到外设的初始化和程序逻辑,以流水灯为例,首先需要初始化对应的 IO 口,接着使用延时语句,不断的切换 IO 口的导通情况。在RTT中,外设称为设备,而实现功能的代码称为应用。所以,RTT有两种开发方式:设备开发应用开发1. 应用开发应用开发需要根据具体的需求而定,RTT可以通过创建多个线程(任务),来实现多个功能同时运行。1.1 创建一个线程可以通过一下示例程序创建一个线程:#define THREAD

2020-07-06 17:17:25 2219

原创 RT-Thread 笔记(1):使用 RT-Thread Studio 创建工程

文章目录一、RT-Thread 操作系统简介二、RT-Thread Studio1. 下载2. 创建工程3. 测试一、RT-Thread 操作系统简介略二、RT-Thread Studio虽然 RT-Thread(简称RTT)只是一个操作系统,理论上是可以任何一个IDE 如 MDK 等都可以支持,但使用官方推出的 RT-Thread Studio 开发更为方便,用户可以直接创建一个基于 RT-Thread 的工程,无需移植,也可以添加各种功能组件。1. 下载下载地址:RT-Thread Stud

2020-07-05 19:33:03 6351

原创 STM32 LL库串口丢包问题与解决

在CubeMx生成代码时,默认为 HAL 库,但也可以指定为 LL库,LL库基本是直接操作寄存器,功能较为单一,但是效率更高。串口使用HAL如果每次接收一个字次,由于HAL库的效率,容易丢包,若一次性接收多个字节,又需要固定的字节数。于是这次使用了 LL 库,在LL库中:LL_USART_TransmitData8(); 为发送一个字节函数,通过查看定义可知,它直接操作了DR寄存器,所以效率很高。这次想设计一个简单的程序:当收到字符A的时,发送字符E,但是发现居然有丢包的现象,这是由于程序逻辑问题导致

2020-07-02 22:12:06 2684

原创 单片机状态机与定时器实现按键事件检测:短按,长按,单击,长单击(轮询方式)

文章目录一、有限状态机(FSM)简介二、按键的状态机1. 按键的状态2. 按键的动作3. 按键的状态转换图2. 按键事件与定时器应用三、状态图与事件四、程序设计1. 枚举变量:按键状态与事件2. 定义状态3. 事件的检测4. 事件处理(禁止/启用重复触发)五、程序源码六、改进一、有限状态机(FSM)简介有限状态机FSM(Finite State Machine),通常指任意一个时刻在一种状态之中,不同状态的转移是通过动作来触发的,不同状态下,不同动作将触发不同的状态转移,当然也可以不发生转移。二、按键

2020-07-02 14:59:43 7797 3

原创 STM32F1x HAL库学习笔记(10)ADC 配置

本文开发环境:MCU型号:STM32F103C8T6IDE环境: MDK 5.27代码生成工具:STM32CubeMx 5.4.0HAL库版本:STM32Cube_FW_F1_V1.8.0本文内容:STM32CubeMx 配置 ADC示例工程一、 ADC 简介ADC(analogue-to-digital conversion)指的是将模拟量转换为数字量的过程,在 MCU 中有广泛的应用,通常用以测量电压的值,比如,测量热敏或光敏的电阻两端的电压,就可以获取当前温度或光线.

2020-06-29 20:22:16 1808

原创 771. 宝石与石头

给定字符串J代表石头中宝石的类型,和字符串S代表你拥有的石头。 S中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J中的字母不重复,J和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。题解:int numJewelsInStones(char * J, char * S){ int J_cnt = 0; for(int index = 0;S[index]!=0;index++) { if(strchr(J, S[

2020-06-25 01:18:30 117

原创 1480. Running Sum of 1d Array

1480. Running Sum of 1d Array/** * Note: The returned array must be malloced, assume caller calls free(). */int* runningSum(int* nums, int numsSize, int* returnSize){ int* outputNums = (int*)malloc(sizeof(int)*numsSize); //定义保存结果

2020-06-22 16:39:17 812

原创 STM32 操作系统内核调度原理与实现(3):两个任务之间的切换

在实现多个任务之间的切换之前,可以先通过实现两个固定任务切换,作为一个过度,本文将介绍在STM32中,如何通过操作内核,来实现两个固定任务之间的切换。一、嵌入汇编1. 嵌入汇编的方法正如前文所提及,实现任务切换中操作内核寄存器需要使用汇编程序,所以我们需要掌握如何在自己使用的IDE中嵌入汇编语句,本文使用的编译器为MDK5默认编译器v5版本:嵌入汇编的方式十分简单,只需要使用_asm来声明一个函数即可,如://程序清单3.1__asm void BUD_ContextSwitch(stack_

2020-05-31 02:10:33 1914 5

原创 STM32F1x HAL库学习笔记(9)硬件 I2C(IIC)主从机的配置

本文开发环境:MCU型号:STM32F103ZET6IDE环境: MDK 5.27代码生成工具:STM32CubeMx 5.4.0HAL库版本:STM32Cube_FW_F1_V1.8.0本文内容:STM32CubeMx 配置主从I2C(IIC)示例工程一、简介I2C 是一种双线协议,由一根时钟线和一根数据线组成,由于时序简单,应用广泛,ST 硬件 I2C 网传...

2020-04-30 16:52:16 14825 30

IR_demo.7z

只需要获取每个波形高低电平时长,通过然后将对应的数据置1或清0,最后读取整个数据即可。本文将时序的解码分为三个部分: 时序捕获 这部分程序负责捕获高低电平的之间变化,并记录其持续的值记录到数组中,初始化时,将定时器通道配置为下降沿捕获,当捕获到一个下降沿,就将捕获极性改为上升沿,并记录此时时间,下一次捕获时,说明获得了一个低电平,将两次时间作差,既可以得到低电平的时间。 时序解码 这部分程序负责读取时序捕获的值,并根据时长判断码值,最后合并成数据,如读取数组第一个值和第二个值分为为 9ms 和 4.5 ms,那么将认为捕获到一个引导码,读取到一个0.56ms低电平和0.56ms高电平,则认为读取到一个 0 码。 执行程序 这部分根据解析到的键值执行相应的代码 ———————————————— 版权声明:本文为CSDN博主「Yonas-Luo」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_17351161/article/details/107437382

2020-07-20

DMA_UART.zip

基于STM32F0的串口接收不定长工程,使用DMA的方式,减少CPU的负担。本工程详细的说明文档:https://blog.csdn.net/qq_17351161/article/details/90415407

2019-06-01

PET_AI_Demo.zip

STM32+SSD1351驱动的全彩OLED,支持显示字符,字符串,图片等,已经移植好程序,关于工程教程,详见博客:https://blog.csdn.net/qq_17351161/article/details/90546065

2019-06-01

pctolcd2002.zip

PCtoLCD2002是一款取字模的软件,图形模式下可任意用鼠标作画,左键画图,右键擦图。支持四种取模方式:逐行、逐列、行列、列行,可以生成中英文数字混合的字符串的字模数据,可选择字体,大小,并且可独立调整文字的长和宽,生成任意形状的字符。除了选择系统预设的C语言和汇编语言两种格式,还可以自己定义新的数据输出格式,每行输出数据个数可调整。 这次发布的PCtoLCD2002完美版与前一正式版相比没有增加太多的功能,主要工作是反复测试,去除各种BUG,以及调节一些细微之处,目的当然就是追求完美!

2019-06-01

Image2Lcd.zip

image2lcd破解版是一款小巧且实用的图片转换成LCD图像数据的工具,它非常适合LCD的开发者和LCD生产厂家使用,此次提供的image2lcd软件安装后注册码就在里面打开就是破解版本,使用方法也非常简单,你只需打开软件后导入相片,然后选好自己的参数,点下重新载入,最后保存为.h格式就可以了,而且,image2lcd破解版支持JPG、BMP、EMF、WBMP、GIF、ICO等多种格式图片的输入,输出的数据拥有二进制类型、WBMP格式、C语言数组类型和标准的BMP格式等多种类型。同时它还能将图象的数据扫描方式、亮度、对比度、灰度(颜色数)以及图像数据排列方式等等进行调节。需要的用户可以试试。

2019-06-01

空空如也

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

TA关注的人

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