![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单片机
文章平均质量分 92
阿基米东
本科毕业于国内某知名双非理工大学,当过校队球员,后自学编程,专注于嵌入式软件开发十余年,在物联网、机器人、汽车等领域拥有实战经验,也是多个开源项目的贡献者,对 Web 前后端、AI 技术略知一二。立志成为一名杰出的开源创客,让世界因我而变得更美好!
展开
-
嵌入式软件架构演进:轮询系统、前后台系统、RTOS 架构特点和选择
嵌入式开发主要包括单片机(MCU)开发和以 ARM 为代表的嵌入式 Linux 开发。本文主要讲解单片机开发中嵌入式软件架构的演进,包括从最初的简单轮询式架构,到前后台系统,再到如今复杂多样的实时操作系统(RTOS)。对比各种嵌入式软件架构的特点和差异,并讨论学习 RTOS 的必要性。原创 2024-04-05 18:51:56 · 1221 阅读 · 1 评论 -
基于 RT-Thread 的智能家居系统 Demo(一)使用 Sensor 框架读取 DS18B20 温度数据
学习要点:实现 DS18B20 温度传感器驱动;介绍 RT-Thread 的 sensor 组件;将 DS18B20 温度传感器对接 RT-Thread 的 sensor 组件(提高上层代码的可重用性);学习线程的使用,在线程中正确读取 DS18B20 温度值。DS18B20 驱动头文件 sensor_dallas_ds18b20.h,提供以下 API:API描述...原创 2019-07-19 19:38:03 · 4500 阅读 · 0 评论 -
浅谈 EEPROM 与 FLASH 存储器
在计算机系统里头,我们常见的非易失性存储介质有 ROM、PROM、EPROM、EEPROM、FLASH 存储器以及磁盘等等。其中 ROM、PROM、EPROM 都是微机发展初期的产物,当然现在的一些场合仍然在使用,比如一次编程的 OTP。 ROM(Read Only Memory,只读存储器)中的数据是在 ROM 的制造工序中,在工厂用特殊的方法被烧录进去的,其中的内容只能读不能改。所以...原创 2018-06-01 16:53:32 · 6565 阅读 · 0 评论 -
STM32F769I-DISCO 开发套件——硬件资源介绍
近期参加 STMicroelectronics 的活动,幸运地获得一套 STM32F769I-DISCO 开发套件,因为毕业之后的工作以 Linux 应用开发为主,我对 STM32 的印象大多还停留在大学时期的基于标准库开发的 STM32F103 系列。实际上,STM32 在我国得到了非常广泛的应用,这些年也发展出很多系列产品以及软件开发工具,所以今天就抽点时间来学习一下 STM32F769I-DI原创 2017-11-20 19:35:35 · 12458 阅读 · 4 评论 -
例说STM32F7高速缓存——Cache一致性问题(三)
3. Cache 一致性问题3.1 什么是 cache 一致性问题 所谓的 Cache 一致性问题, 主要指的是由于 D-cache 存在时,表现在有多个 Host(典型的如 MCU 的 Core, DMA 等)访问同一块内存时, 由于数据会缓存在 D-cache 中而没有更新实际的物理内存。 在实际应用中,有以下两种情况: 第一种情况是当有写物理内存的指令时,Core 会先去更新相应原创 2017-11-03 20:55:37 · 15668 阅读 · 7 评论 -
例说STM32F7高速缓存——Cache一致性问题(二)
2. STM32F7 新特性——高速缓存2.1 STM32F7 的存储系统 STM32F7 系列微控制器作为高性能微控制器,为我们带来了很多让人眼前一亮的新特性,其中之一就是独立的指令和数据高速缓冲存储器,也就是所谓的 L1-cache,包括 I-Cache 和 D-Cache。Cache 的大小根据不同型号有所差别,有 4Kbytes、8Kbytes 和 16Kbytes 几种容量。 实际原创 2017-11-03 17:31:01 · 17656 阅读 · 1 评论 -
例说STM32F7高速缓存——Cache一致性问题(一)
例说STM32F7高速缓存——Cache一致性问题(一) 例说STM32F7高速缓存——Cache一致性问题(二) 例说STM32F7高速缓存——Cache一致性问题(三) 为了说清楚这个问题,我特意翻出了压箱底的那本杜春雷老师的《ARM体系结构与编程》,内容虽然是旧了点,但经典毕竟是经典,每次看都会有新的收获。 本来想把标题定为“xxx,看这篇就够了”,但因为功力不够,怕是误人子弟,担原创 2017-11-01 17:01:02 · 15961 阅读 · 5 评论 -
浅谈DMA
DMA(Direct Memory Access,直接内存存取)是所有现代计算机系统中的重要特色,该工作方式允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后将这新信息再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。DMA 传输将一个内存区从一个装置复制到另外一个。CPU 初始化这个传输动作,传输动原创 2017-11-10 18:55:27 · 3482 阅读 · 0 评论 -
STM32网络丢包问题分析
1. 测试环境说明 硬件平台:NUCLEO-F767ZI 开发板(STM32F7,Cortex-M7,216MHz,2MB Flash,512KB SRAM) 操作系统:FreeRTOS v9.0.0(CMSIS-RTOS v1.02) TCP/IP协议栈:LwIP v2.0.0 这里所描述的网络丢包问题的测试程序,是使用 STM32CubeMX 工具(库版本为 STM32C原创 2017-07-29 00:24:58 · 12712 阅读 · 4 评论 -
51单片机教程(从原理开始基于汇编)
【发现了一系列不错的文章】 很多电子爱好者,都想学习单片机这门技术。下面的这一系列教程是 www.51hei.com 专门为初学者入门而准备的,从底层硬件入手基于汇编和c两种语言,详细的介绍了单片机的原理,指令,寄存器,以及接口等,后面还为你准备了一些小的设计。都是从单片机最基本的东西讲起,相信你一定能看懂,并且学会单片机这门有意思的技术,有什么问题可在文章后面的评论留言。 第1课:单片原创 2017-08-18 18:29:21 · 19913 阅读 · 6 评论 -
MQTT 初体验——mosquitto 的安装与使用
MQTT是什么? MQTT(MQ Telemetry Transport,消息队列遥测传输)是近年来出现的一种新型协议,物联网领域也许会将其作为标准协议。MQTT 原本是 IBM 公司开发的协议,现在已经开源了,被更多人共同开发着。 MQTT 是一种能实现一对多通信(通常被称为发布/订阅型)的协议。如下图所示,它由三部分组成,分别是代理服务或中介(broker)、发布者(publisher)原创 2017-07-29 12:59:10 · 9056 阅读 · 0 评论 -
从最简单的IO驱动看出工程师的水平
GPIO驱动是嵌入式系统中最简单的驱动,然而有多少电子类高材生在它身上栽了跟头? 从单片机到ARM7、ARM9、Cortex-A8,从uC/OS到WinCE、Linux,GPIO驱动都是最简单、最易编写的驱动。但看似简单、毫无技术含量的驱动,其是否完整?是否规范?是否安全? 典型案例 本节将选取两例典型案例,从反、正两个角度进行对比。 反方案例 以某一源码中XXX驱动为例,原创 2016-09-27 19:14:43 · 2803 阅读 · 3 评论 -
MPU6050 介绍
MPU6050 为全球首例集成六轴传感器的运动处理组件,内置了运动融合引擎,用于手持和桌面的应用程序、游戏控制器、体感遥控以及其他消费电子设备。它内置一个三轴 MEMS 陀螺仪、一个三轴 MEMS 加速度计、一个数字运动处理引擎(DMP)以及用于第三方的数字传感器接口的辅助 I2C 端口(常用于扩展磁力计)。当辅助 I2C 端口连接到一个三轴磁力计,MPU6050 能提供一个完整的九轴融合输出到其主原创 2016-06-13 15:34:22 · 17284 阅读 · 0 评论 -
ADC模数转换器工作原理及分类
现在的软件、无线电、数字图像采集都需要有高速的A/D采样保证有效性和精度,一般的测控系统也希望在精度上有所突破,人类数字化的浪潮推动了A/D转换器不断变革,而A/D转换器是人类实现数字化的先锋。A/D转换器发展了30多年,经历了多次的技术革新,从并行、逐次逼近型、积分型ADC,到近年来新发展起来的 ∑-Δ型 和 流水线型ADC,它们各有其优缺点,能满足不同的应用场合的使用。ADC的工作原理 模数转原创 2016-06-02 13:45:41 · 28082 阅读 · 0 评论 -
浅谈CAN总线
在前面的《浅谈I2C总线》和《浅谈SPI总线》 中我们介绍的 I2C、SPI 总线多用于传输距离短、协议简单、数据量小、主要面向 IC(集成电路)间通信的“轻量级”场合。而 CAN 总线则不同,CAN 总线定义了更为优秀的物理层、数据链路层,并且拥有种类丰富、简繁不一的上层协议。什么是 CAN 总线 CAN 是“Controller Area Network”的缩写,即“控制器局域网”,是一个 I原创 2016-06-01 15:00:50 · 9102 阅读 · 4 评论 -
浅谈I2C总线
I2C(Inter Integrated Circuit,内部集成电路)总线是价格低廉却很有效的用以互连小规模嵌入式系统内的外设的网络。I2C 总线有时候也叫作 IIC,它已有20多年的历史了。I2C 接口和 SPI 接口的作用相同,但二者的使用方法有些不同。 I2C 总线用两根线来连接多支路总线中的多个设备。这种总线是双向、低速的,并与公共时钟同步。可以直接将一个设备接到 I2C 总原创 2016-05-30 09:45:54 · 9786 阅读 · 0 评论 -
浅谈SPI总线
串行外围设备接口(Serial Peripheral Interface,SPI)是由 Motorola 公司开发的,用来在微控制器和外围设备芯片之间提供一个低成本、易使用的接口(SPI 有时候也被称为4线接口)。这种接口可以用来连接存储器、AD/DA转换器、实时时钟日历、LCD驱动器、传感器、音频芯片,甚至其他处理器。目前支持 SPI 的元件很多,并且还在不断增加。 这里需要提一下,原创 2016-05-27 22:14:14 · 5338 阅读 · 0 评论 -
广工嵌入式系统课程设计——单片机售票机
呵呵,这就是大学时期最后一个课程设计,虽然称为嵌入式系统XXX,但是用的只是51单片机。。。写了一下这个售票机小程序,感觉还不错,所以就贴出来跟大家分享一下。/***************************************************File name : 2333.cCreateddate : 2013-11-19 22:43原创 2013-12-14 22:09:22 · 2605 阅读 · 0 评论