自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (6)
  • 收藏
  • 关注

原创 红外协议之NEC协议

红外协议之NEC协议一、NEC协议的特征1、8 位地址和 8 位指令长度;2、地址和命令 2 次传输(确保可靠性)3、PWM 脉冲位置调制,以发射红外载波的占空比代表“0”和“1”;4、载波频率为 38Khz;5、位时间为 1.125ms 或 2.25ms二、NEC表示形式NEC 码的位定义:一个脉冲对应 560us 的连续载波,一个逻辑 1 传输需要 2.25ms(560us脉冲+1680us 低电平),一个逻辑 0 的传输需要 1.125ms(560us 脉冲+560us 低电平)。

2021-08-18 13:27:23 11917 3

原创 C语言中的__attribute__宏定义之section属性

C语言中的 __attribute__宏之section属性文章目录C语言中的 __attribute__宏之section属性一、起因二、解释前言无论是GNU还是ARM的编译器, 都支持 __attribute__所指定的编译属性,这里着重讲解一下在KEIL 环境下__attribute__中的section的使用方法。一、起因我们先来看一个宏#define INIT_EXPORT(fn, level) \ RT_USED const init_fn_t __rt_

2021-08-15 18:19:12 12213 3

原创 15、W601之SPI Flash实验——W25Q128

15、W601之SPI Flash实验——W25Q128文章目录15、W601之SPI Flash实验——W25Q128一、W25Q128 简介二、硬件连接三、操作W25Q128的主要指令四、代码实现一、W25Q128 简介W601 的 SPI 接口来驱动 W25Q128 这个 SPI FLASH 芯片,W25Q128 是华邦公司推出的大容量 SPI FLASH 产品,W25Q128 容量为 128Mb。也就是 16M 字节。W25Q128 将 16M 的容量分为 256 个块(Block),每

2021-08-14 11:10:38 887

原创 14、W601之AHT10温湿度传感器

14、W601之AHT10温湿度传感器一、AHT10简介AHT10 是一款高精度,完全校准,贴片封装的温湿度传感器, MEMS 的制作工艺,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个高性能CMOS 微处理器相连接。该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。AHT10 通信方式采用标准 IIC 通信方式,超小的体积、极低的功耗,使其成为各类应用甚至最为苛刻的应用场合的最佳选择。 AHT10 支持较宽的工作电源电压范围,该器件可为各类常见应用场景提供

2021-08-14 09:42:21 2335

原创 13、W601的RTC时钟

13、W601的RTC时钟文章目录13、W601的RTC时钟一、W601的RTC功能概述二、主要特性三、代码实现四、实验现象一、W601的RTC功能概述RTC 是由 PMU 模块提供的 BCD 计数器/定时器,两个 32 位寄存器包含秒、分、时、日、月、年,以二进制编码的十进制格式表示(BCD),能自动对 28、29(闰年)、30、31 天的月份进行修正。在相应软件配置下,RTC 既可以提供时钟日历功能,又可以当作定时器使用,在定时器达到设置的时间后会产生一个 RTC 中断,可用来唤醒处于睡眠

2021-08-13 16:07:12 245

原创 12、W601之SPI驱动LCD

12、W601之SPI驱动LCD文章目录12、W601之SPI驱动LCD一、SPI简介二、W601的SPI三、W601上的LCD四、板载LCD的原理图五、初始化SPI六、初始化LCD七、在LCD上显示字符串一、SPI简介SPI 是英语 Serial Peripheral interface 的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来

2021-08-13 14:58:55 662

原创 11、W601之PWM控制器

11、W601之PWM控制器文章目录11、W601之PWM控制器一、PWM功能概述二、W601的PWM控制器的主要特性三、寄存器描述四、代码实现一、PWM功能概述PWM 是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM 信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负

2021-08-13 10:21:21 496

原创 10、W601定时器

10、W601定时器文章目录10、W601定时器一、W601的定时器模块二、配置要素三、timer寄存器四、函数实现一、W601的定时器模块定时器包含一个 32-bit 自动加载的计数器,该计数器由系统时钟经过分频后驱动。W601 有 6 路完全独立定时器。实现了精确的定时时间以及中断功能,可用于延时或者周期性事件处理。定时器模块由 6 路完全独立的定时器组成,互不影响,6 路可以同时工作。主要特性6 路完全独立的定时器32-bit 自动加载计数器定时单位可配置为 ms、us可实现单次定时

2021-08-12 17:50:15 261

原创 09、W601看门狗

09、W601看门狗文章目录09、W601看门狗一、什么是看门狗二、W601看门狗功能表述1、定时功能2、复位功能三、代码实现四、实验现象一、什么是看门狗“看门狗”会产生一个周期性中断,系统软件在中断产生后要清除其中断标志,若超过其设定时间未清除,则会产生一个硬复位信号对系统进行复位主要特性:提供定时功能提供复位功能提供定时中断二、W601看门狗功能表述1、定时功能设置定时值到寄存器 WD_LD 后,设置 WDG_CTRL 的 BIT0 为 1 启动定时器,WDG 模块定时时间到会产

2021-08-12 13:59:19 208

原创 08、W601的外部中断

08、W601的外部中断文章目录08、W601的外部中断一、W601的外部中断二、配置外部中断三、代码实现一、W601的外部中断GPIO 模块提供输入信号检测功能。通过配置 GPIO 中断相关的寄存器可以实现高低电平检测以及上下沿跳变检测。当对应 IO 的输入信号符合预先设置的条件,比如说高电平触发或者上升沿触发等,即会触发 GPIO 中断,上报给 MCU 处理。MCU 需要清除相应的中断状态,以免中断误触发。二、配置外部中断配置GPIO端口为输入配置中断的触发方式上升沿触发下降沿触发

2021-08-12 11:48:47 87

原创 07、W601串口驱动

07、W601串口驱动文章目录07、W601串口驱动一、什么是UART二、W601的UART三、W601串口的波特率计算四、代码实现其实串口驱动应该在开发最初就应该写好,不然那些log日志也不会被输出,之所以放到现在是考虑到驱动的难易程度,在了解了IO口的输入输出功能和配置之后就可以更容易配置其他的设备驱动了!一、什么是UARTUART 是一种通用串行数据总线,用于异步通信。该总线支持双向通信,可以实现全双工传输和接收。二、W601的UARTW601 共 2 组普通 UART 口(uart0

2021-08-12 10:14:58 208

原创 06、W601之位带操作

06、W601之位带操作文章目录06、W601之位带操作一、什么是位带操作二、位带区和位带别名区地址三、计算公式为四、举个栗子一、什么是位带操作简单来说,就是用四个位表示一个位,把目标地址抽离出来映射成另一块地址,直接来进行操作。那么为什么要这么干呢?因为CM3内核是不能像51单片机一样对某个独立IO口(P1.1 = 0)进行设置的,为了实现这个功能,CM3内核提出了位带操作这个概念。二、位带区和位带别名区地址如图所示,Peripheral区和SRAM区分别有一个1MB位带区(Bit Band

2021-08-11 16:36:59 372

原创 05、W601电亮led

05、W601电亮led文章目录05、W601电亮led一、电亮led的原理二、看原理图,找到led的有关引脚号三、配置相关引脚一、电亮led的原理led就是一个发光二极管,具有单向导电性。在二极管的正极添加电压就可以电亮,反之在负极添加电压则点不亮(前提是不超过反向击穿电压)。二、看原理图,找到led的有关引脚号由原理图可知,W601有三个led,LED_R,LED_G,LED_B,分别对应PA_13,PA_14,PA_15。再看原理图,W601的引脚是接led的负极,led的正极接的是3.

2021-08-11 12:35:59 117

原创 04、W601之移植EasyLogger

04、W601之移植EasyLogger1、 介绍EasyLogger 是一款超轻量级(ROM<1.6K, RAM<0.3K)、高性能的 C/C++ 日志库,非常适合对资源敏感的软件项目,例如: IoT 产品、可穿戴设备、智能家居等等。相比 log4c、zlog 这些知名的 C/C++ 日志库, EasyLogger 的功能更加简单,提供给用户的接口更少,但上手会很快,更多实用功能支持以插件形式进行动态扩展。2、为什么要移植支持用户自定义输出方式(例如:终端、文件、数据库、串口、485

2021-08-10 18:27:10 502

原创 03、W601 SysTick定时器配置

03、W601 SysTick定时器配置一、延时函数之delay延时函数在裸机开发中是必不可少的函数,而且使用率还很高,那么我们怎么才能写一个相对精准的延时函数呢?这就需要用到系统SysTick定时器了,也就是系统滴答时钟二、SysTick定时器初学STM32的我,我在编程手册中怎么也找不到有关SysTick定时器相关的内容,原来它是在内核手册中。SysTick也就是系统滴答时钟,可能是因为它非常重要,所以才放到内核手册中……下面是内核手册中的原话: Cortex‐M3处理器内部包含了一个简单

2021-08-10 15:49:00 188

原创 02、W601配置时钟

02、W601配置时钟一、w601时钟树如图就是W601整个芯片的时钟树,暂时对我们初始化系统时钟没有什么用,不过以后配置基本外设时钟还是有用的。因为W601是M3内核,所以还是看内核。……看了一下W601的SDK的API,已经为我们提供了配置系统时钟的接口:void tls_sys_clk_set(u32 clk);没错,只要调用这个接口就好了。其实我也找了寄存器文档,并没有介绍有关系统时钟的配置,只知道W601可以工作在80MHz。既然提供了接口那就用吧。其中SDK有个wm_regs.h

2021-08-10 15:46:52 173

原创 01、W601基于官方SDK裸机开发

01、W601基于官方SDK裸机开发一、搞清w601的Flash和RAMflash:从图中可以可以看出内部 FLASH 被分为了如下几个区域:PHY PARAM AREA(4K)QFLASH PARAM AREA(4K)SECBOOT(56K),其中 SECBOOT PARAM 参数占用了 256 字节RUN AREA(512K),其中 RUN PARAM 参数占用了 256 字节UPD AREA(384K)USER AREA(48K)UDP PARAM(4K

2021-08-10 15:43:12 466

原创 FreeRTOS 信号量

FreeRTOS 信号量一、信号量简介信号量常常用于控制对共享资源的访问和任务的同步。二、二值信号量1、二值信号量的简介二值信号量通常用于互斥访问或同步,二值信号量和互斥信号量非常类似,但是还是有一些细微的差别,互斥信号量具有优先级继承机制,但是二值信号量没有继承机制。2、二值信号量的操作1、动态创建二值信号量SemaphoreHandle_t xSemaphoreCreateBinary( void )失败返回NULL,成功返回二值信号量的句柄。2、静态创建二值信号量,参数是用来保

2021-07-27 11:25:03 372

原创 整流与滤波电路

整流与滤波电路一、单相半波整流电路1、单相半波整流电路电源变压器 T 的初级线圈接到220 V 的交流电源上 ,交流电压 u2为变压器次级电压有效值 ,D 为整流二极管 ,R L 为直流负载电阻 。2、电路中的电压和电流实验证明 ,在一个周期内 ,半波整流输出电压的平均值等于变压器次级电压有效值 U2 的 0.45 倍 ,即:U0= 0.45 U2。流过负载的电流I0= U0 /R L = 0.45U2 /R L,那么流过二极管的正向电流的平均值 I D 和流过负载 R L 上的电流相等。

2021-07-25 18:30:14 4958

原创 常用半导体器件

一、常用半导体器件一、半导体1 .半导体中有两种载流子 ;自由电子和空穴 。 P 型半导体的多数载流子是空穴 ;N 型半导体的多数载流子是自由电子 。2 .PN 结外加正向电压时 ,正向电阻小 ,表现为导通状态 ;加反向电压时 ,反向电阻很大 ,表现为截止状态 。 这就是 PN 结的单向导电性 。二、晶体二极管1 .二极管的结构和符号​ 2 .二极管的伏安特性硅二极管的死区电压为 0.5V 左右 ,锗二极管的死区电压为 0.2 V 左右。正向导通电压硅管为 0.7 V 左右 ,锗管约为

2021-07-25 18:13:33 3359

原创 利用STM32CubeMx创建关于RT-Thread的Makefile工程

利用STM32CubeMx创建关于RT-Thread的Makefile工程步骤利用STM32CubeMx创建关于RT-Thread的Makefile工程一、序言二、搭建环境三、开始建立工程四、修改Makefile五、修改链接文件总结一、序言说到为什么要建立Makefile工程,还要从我的老年机(PC)说起,实在是有点跟不上了。于是我换了ArchLinux系统,开始向Linux系统迈进,开始学...

2020-04-06 17:26:19 1980 3

原创 Linux入门第一天

小白入门嵌入式开发第一天@Linux系统管理tftp服务器为什么需要tftp服务器在嵌入式开发过程中有宿主机和目标机的角色之分:宿主机是执行编译、链接嵌入式软件的计算机;目标机是运行嵌入式软件的平台。tftp服务器作为工作于宿主机上的软件,主要提供对目标机的主要印象文件的下载工作。NFS服务器NFS介绍网络文件系统(NFS,Network File System)是一种将远程主机上的分...

2019-11-12 12:56:38 95

stm32ISP.zip

在Linux下开发STM32的时候直接通过串口下载程序到单片机,比较方便。资源里有两个版本的下载程序。只需要make就行了,如何下载到单片机只需要看main.c就行了。

2020-04-30

stm32f103zet6普通IO口模拟串口

由于STM32串口有限,于是试着将普通IO口模拟成串口使用,本来想着挺难,后来只要搞清楚串口的时序其实就很简单了,测试成功,附上MDK工程。

2019-03-13

红外线的学习

资源包含红外线各种型号红外设备的红外协议库,可移植到各种嵌入式设备,资源内付STM32平台的测试工程,已测试成功。

2019-03-13

TCS24725驱动

此工程是基于STM32平台的TCS24725颜色传感器的驱动代码,工程已建立,代码规范,程序已测试没问题,将颜色的各种数值通过串口打印了出来。

2019-03-13

mini2440的USB全驱动

亲测有效,适合各种版本window,本人电脑是win10,安装成功了。

2019-03-13

LinuxTCP客户端

此代码是Linux环境下tcp通信的客户端,内容比较完善,并且经过多次测试,下载只需修改目标服务器的IP地址就行

2017-09-25

空空如也

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

TA关注的人

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