自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RT-Thread源码解读-------DAC设备

本文讲解关于RT-Thread的

2021-01-04 09:44:23 623

原创 RT-Thread源码解读-------ADC设备

一、ADC简介ADC指的是模拟量转换成数字量,一般是将模拟的电压或者电流信号转换成数字量。这里要说明一下,在RT-Thread源码中所说的ADC设备指的一般是MCU内部的ADC模块(大家可以理解为能够直接操作ADC工作参数的模块)。笔者在项目开发过程中使用过一些检测身体特征的传感器(心率传感器),这些传感器本质上就是一个ADC转换成器,将采集的模拟类型的身体信号转换成数字量,然后经过像I2C或者SPI等通信协议传送给MCU。那么这些传感器,在RT-Thread内核中并不会将它们视为ADC设备,而是将它们视

2021-01-02 18:40:38 1063

原创 RT-Thread源码解读-------UART设备

一、UART简介对于UART简介,RT-Thread官网的文档中心已经介绍,我把链接附上:UART简介。其实,网上也会有很多方面的资料,大家可以从网上搜索一些资料阅读一下。我在这里进行一些简单的几点说明:UART是一种全双工的通信方式,所谓的全双工就是在同一时刻两个UART设备能够同时进行收发数据。在工业上用的RS485、RS232总线一般都是经过UART协议转换过来的,具体如下图所示,图中MCU通过UART产生数据,经过MAX3485转换成RS485协议,或者经过MAX3232转换成RS232协

2020-12-30 15:59:51 1044

原创 RT-Thread源码解读-------I/O设备驱动

I/O 设备管理层:实现了对设备驱动程序的封装;应用程序通过 I/O 设备层提供的标准接口访问底层设备,设备驱动程序的升级、更替不会对上层应用产生影响。这种方式使得设备的硬件操作相关的代码能够独立于应用程序而存在,双方只需关注各自的功能实现,从而降低了代码的耦合性、复杂性,提高了系统的可靠性。设备驱动框架层:不同厂家的同类硬件设备驱动中相同的部分抽取出来,将不同部分留出接口,由驱动程序实现。设备驱动层:是一组驱使硬件设备工作的程序,实现访问硬件设备的功能。它负责创建和注册 I/O 设备,对于操作逻辑简单

2020-12-29 09:45:11 1529 2

原创 FreeRTOS内核源码解读之-------系统启动(三)

前面文章两篇文章介绍了FreeRTOS的启动过程,但是有些问题还没有解决,在本篇文章中将会逐一解决。首先,在《FreeRTOS内核源码解读之-------系统启动(一)》中提到Cortex-M4内核中两个不同的栈指针寄存器MSP和PSP。对于不具有嵌入式OS的应用,可以在操作中只使用MSP栈指针寄存器;对于含有嵌入式OS(就像FreeRTOS)应用,异常处理(包括内核状态下)使用的是MSP,对于应用任务使用的是PSP。每一个应用任务都有自己的栈空间,那么上面这种机制是怎么实现的呢?还有FreeRTOS是

2020-06-09 14:19:46 1273 1

原创 FreeRTOS内核源码解读之-------系统启动(二)

FreeRTOS系统启动过程主要分为三部分:汇编部分、main函数初始化部分、开启任务调度部分。对于汇编部分主要是设置一些中断向量表、设置堆和栈等一些C语言运行需要的条件,当这些部分设置完成时候,就会跳转到main函数运行。对于main函数初始化部分,主要是做一些必要的硬件外设初始化、板级初始化、还有就是任务的创建。任务创建完成之后,就会开启调度器,FreeRTOS开始运行。下面就讲一下FreeRTOS是怎么开始运行的:由于之前讲过一篇关于apollo2 MCU的汇编启动,关于Cortex-M4的汇编

2020-06-08 17:58:03 855

原创 FreeRTOS内核源码解读之-------系统启动(一)

RTOS多任务运行 Cortex-M4对于多任务运行的硬件架构支持特性最近研究FreeRTOS的内核源码,产生了一个疑问?//创建开始任务 xTaskCreate((TaskFunction_t )start_task, //任务函数 (const char* )"start_task", //任务名...

2020-05-07 11:15:10 1467

原创 FreeRTOS内核源码解读之-------列表和列表项(一)

最近一直在看关于FreeRTOS内核源码,里面涉及很多列表和列表项的内容,因此需要好好研究一下。这部分内容在FreeRTOS中起着很重要的作用,如果把FreeRTOS比作一个人的话,那么列表和列表项就相当于人的神经系统,管理整个FreeRTOS系统有条不紊的运行。首先,要明确列表项和列表是两个不同的概念,在FreeRTOS中是两个不同的数据结构。这一点,我在刚开始接触的时候经常混淆。通俗点说,列...

2020-04-16 17:02:41 803

原创 RT-Thread源码详解(二)------红外遥控

本文介绍通过控制潘多拉开发板实现红外遥控的接收与发送。要实现红外遥控的接收与发送只需要使用stm32内部定时器控制外部管脚变化产生38kHz的方波,以此控制相应的红外接收与发射接口,就可以实现红外控制。代码讲解://#define PERIPH_BASE (0x40000000UL) /*!< Peripheral base address *///#define ...

2019-10-26 22:15:51 1581

原创 RT-Thread源码详解(一)-----PIN设备

最近抖音、朋友圈全是关于声援华为的消息。没有自家的操作系统就是要被别人限制,作为建设社会主义的接班人,在这时候总要做点什么。我作为一名一事无成的大龄青年,没有在危难之际拯救世界的能力;如果在朋友圈转发一下文章“呐喊一下”,打开手机看了一下在自己朋友圈,只有一百多人,印象里这些人都没有去过美国,又没法给美国佬捎个信,表达我心中的不满。思来想去,最近在学习一款国产的物联网操作系统RT-Thread,正...

2019-07-02 15:37:48 2788

原创 一个关于Apollo2(MCU)时钟问题引发的剖析

最近和硬件同事一块调一个使用Apollo2的MCU的板子,这种MCU号称全球超低功耗MCU之最。“咱也不知道,咱也不敢问,为什么敢用如此嚣张的称呼!!!哈哈,开个玩笑。”言归正传,在生产板子的时候,由于厂家生产原因,导致apollo2外挂的32.768kHz的晶振不能起振 Apollo2时钟源解析 Apollo2定时器解析 代码实现...

2019-06-27 15:47:25 1836

原创 Apollo2(Cortex-M4)MCU启动文件详解

@[Apollo2(Cortex-M4)MCU启动文件详解]Apollo2(Cortex-M4)MCU启动文件详解你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器,最近项目中用到超低功耗半导体解决方案领先厂商Ambiq Micro的Apollo2 MCU,该MCU是基于ARM公司的Cortex-M4架构。因此,借此机会分析一下启...

2019-06-23 10:24:24 1334

原创 FreeRTOS之内存管理详解

Freertos内核源码解读之--------内存管理 内存管理 任务栈和系统栈的区别 FreeRTOS内存管理方法 FreeRTOS静态创建一、内存管理在c语言中定义了4个区:代码区、全局变量和静态变量区、动态变量区(即栈区)、动态存储区(即堆区)。1>栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。在STM32汇编代码中设置如下:Sta...

2019-06-23 10:21:58 7889 2

原创 BLE设备地址类型笔记

本文介绍了低功耗蓝牙中关于设备地址方面的知识,主要包括蓝牙设备中的几种设备类型,对于我这种初学者来说,种类繁多的设备类型确实容易混淆。因此,根据蓝牙官方协议《Core_v5.1.pdf》谢了此文,希望对学习BLE的朋友有所帮助。了解详情,可以参照Core_v5.1.pdf第2685页。一、报文结构设备地址是一串用于标识设备身份识别的数字,一个蓝牙设备对应一个设备地址。设备地址是一个48bit...

2019-06-14 16:48:04 2116

原创 SPI总线协议详解及STM32代码实现

SPI总线协议详解及STM32代码实现 SPI总线协议详解 STM32代码实现本篇博客分为两部分。第一部分讲解SPI总线协议的实现,主要包括硬件连接、工作模式、时序等。第二部分讲解通过STM32以SPI的方式实现对Flash芯片W25Q128的读写,这其中采用了两种方式:第一种方式是采用STM32的GPIO模拟SPI时序的方式进行读写Flash芯片;另一种方式采用STM32片内自带的SPI...

2019-06-13 15:38:16 16401 7

原创 FreeRTOS内核源码解读之-------任务创建

任务创建函数--------xTaskCreate函数原型BaseType_t xTaskCreate( TaskFunction_t pxTaskCode,const char * const pcName,const uint16_t usStackDepth,void * const pvParameters,UBaseType_t uxPriority,TaskHandle...

2019-05-18 23:52:01 997

原创 FreeRTOS基础知识

FreeRTOS文件结构 FreeRTOS编码标准和风格 FreeRTOS系统配置1、FreeRTOS文件结构从FreeRTOS官网下载“FreeRTOSv9.0.0.exe”,双击此文件。选择FreeRTOS源码生成的路径,就会自动生成FreeRTOS源码。生成源码之后,我们进入“D:\FreeRTOS源码\FreeRTOSv9.0.0\FreeRTOS”文件夹(这里我将文件“Fr...

2018-10-27 19:55:26 2518

tupo.zipDMA接收

tupo.zipDMA接收

2021-03-24

空空如也

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

TA关注的人

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