摘要: STM32 一种参数检查用法介绍 是一个在代码中很常见的写法,这个函数的功能一般是对函数参数的合法性进行检查,这里以一个例子进行分析: assert_param(IS_GPIO_ALL_PERIPH(GPIOx)) 函数的参数是 ,原型为: 这个宏定义的作用就是检查参数PERIPH,判断参数PERI 阅读全文
posted @ 2020-01-16 23:24 回归的世界线 阅读(1167) 评论(0) 推荐(0) 编辑
摘要: 中断和事件(Interrupts and events) 嵌套向量中断控制器(Nested vectored interrupt controller NVIC) 中断是相对CPU而言的,因此例如IIC、定时器这些芯片内产生的中断也被称为外部中断,不能狭隘的理解为由芯片外的信号触发 EXTI被称为外 阅读全文
posted @ 2020-01-16 22:56 回归的世界线 阅读(1281) 评论(0) 推荐(0) 编辑
摘要: [TOC] STM32 OV2640将数据缓存至SRAM 流程设计 流程如下: 1. 初始化OV2640后,初始化DCMI和DMA,DCMI的初始化代码与原子开发板的代码一致,这里主要是区分在DMA的初始化上: RGB565是16个比特,2个字节,因此采用半字传输,总量为 ,存储器地址递增,初始化代 阅读全文
posted @ 2019-12-02 23:45 回归的世界线 阅读(1692) 评论(0) 推荐(0) 编辑
摘要: [TOC] STM32 .ld链接文件分析及一次bug解决过程 问题描述 原子板的代码中含有一个关于使用外部SRAM的功能,由于本人的开发板的SRAM只有512K,因此稍微修改了一下代码,同时使用GCC进行编译,但是这里却报错了,源码如下: 这里的 指的是4字节对齐,这是个MDK的用法,换到GCC只 阅读全文
posted @ 2019-12-02 00:00 回归的世界线 阅读(15336) 评论(4) 推荐(5) 编辑
摘要: 浅谈嵌入式软件设计 本文在21IC的公众号文章《多年嵌入式编程工程师经验分享:换个角度来编程》基础上结合自己理解而写,部分图片以及文字说明均来自互联网。 前后台模型 模型介绍 当开发过程中不使用OS时,几乎所有的嵌入式程序归根结底都是一个由无法停止的循环为结构构成的,即常见的 或`for(;;)`, 阅读全文
posted @ 2019-11-22 00:08 回归的世界线 阅读(901) 评论(0) 推荐(1) 编辑
摘要: [TOC] Makefile 直接附上Makefile的内容: makefile target TARGET = demo_project debug build? DEBUG = 1 optimization OPT = O1 Build path BUILD_DIR = Output sourc 阅读全文
posted @ 2019-11-20 21:01 回归的世界线 阅读(1418) 评论(1) 推荐(0) 编辑
摘要: [TOC] STM32 Win10下搭建嵌入式ARM开发环境 一个嵌入式应用的开发一般由如下几个环节构成: 创建工程,将中间件、应用代码、驱动代码添加至工程中 配置工程的编译选项,编译并连接,生成二进制目标码 将PC通过仿真器与开发板连接,将二进制目标码通过仿真器传输至芯片flash 测试并修改bu 阅读全文
posted @ 2019-11-17 15:18 回归的世界线 阅读(5007) 评论(0) 推荐(0) 编辑
摘要: [TOC] 浅谈MCU的DMA技术 DMA技术简介 DMA外设和存储器(或存储器和存储器)直接通过总线进行数据交换而不经过CPU的技术。在MCU中,DMA是一项十分重要的技术,它可以降低CPU的处理压力,提高外设数据的处理效率。 概念: 通道:DMA的通道表示一组外设对存储器的请求, 数据对齐:源和 阅读全文
posted @ 2019-11-03 17:54 回归的世界线 阅读(4106) 评论(0) 推荐(0) 编辑
摘要: [TOC] 微型计算机 理解微型计算机的工作原理才能更好的理解计算机、芯片、单片机等等的工作机理。本文从微机原理出发,整理相关知识并梳理,加深对计算机的理解。 基础电路 计算机由集成电路构成,可以说计算机是跑在芯片上的,芯片包括CPU芯片例如Intel生产的芯片,以及外设更多的单片机芯片如ARM等, 阅读全文
posted @ 2019-10-27 18:21 回归的世界线 阅读(3214) 评论(0) 推荐(0) 编辑
摘要: 问题1 工作需要出bug的芯片不详细说明,该芯片的CPU含有32个中断源,一般来说,以stm32为例,中断向量表定义在 中,写为: 其中的 为中断服务函数,对中断服务函数进行实现后即可使用,我们开发芯片程序时常用的一种设计思路是这样的: 主程序中定义一个全局变量 用于记录是否有外部输入需要处理,打开 阅读全文
posted @ 2019-10-23 22:56 回归的世界线 阅读(716) 评论(0) 推荐(0) 编辑