Bruceoxl
BruceOu,于2017年10月13日开始在CSDN上写博客,博客专注于嵌入式开发、人工智能等。欢迎各位朋友来访!
邮箱: ouxiaolong@bruceou.cn
展开
-
《嵌入式 – GD32开发实战指南(RISC-V版本)》第2章 初识GPIO流水灯
开发板:GD32VF103V-EVAL。原创 2022-12-27 23:02:30 · 2862 阅读 · 0 评论 -
《嵌入式 – GD32开发实战指南(RISC-V版本)》 第1章 RISC-V开发环境搭建 - 基于MounRiver Stuido开发
1.2基于MounRiver Stuido开发MounRiver Stuido下载MounRiver Stuido是一款针对嵌入式项目(RISC-V/ARM)的集成开发环境,提供了包括编辑器、C编译器、宏汇编、链接器、库管理、仿真调试器和下载器等在内的完整开发资源,工具链方面增加了对RISC-V系列单片机中断硬件自动保存上下文功能的支持。1.2.1 MounRiver Stuido安装MounRiver Stuido 有多个系统版本,根据自己的系统下载对应的版本即可。值得注意的是,安装MounR原创 2022-05-19 21:42:26 · 1456 阅读 · 0 评论 -
《嵌入式 – GD32开发实战指南(RISC-V版本)》 第1章 RISC-V开发环境搭建 - 基于Nuclei Studio开发
开发环境:开发板:GD32VF103R-STARTIDE:Nuclei StudioRISC-V系列的MCU开发环境有很多,可以使用VS Code开发,也可以使用IDE,比如Embedded studio、Eclipse(Nuclei Studio、MounRiver Stuido、GNU MCU Eclipse)等,IAR也支持RISC-V。无论使用什么工具,编译工具还是使用riscv-none-embed,本质是一样的。1.1基于Nuclei Studio开发Nuclei Studio下载:原创 2022-05-14 21:02:24 · 2675 阅读 · 1 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第2部分 外设篇 - 第3章 温度传感器DS18B20
1.DS18B20硬件接口相对简单,但单总线协议对软件要求较高,因此必须严格按照时序要求来设计程序,否则无法正确读出温度值。2.在实际应用的应用中的线缆长度应有所限制,在长距离信号传输过程中要充分考虑总线分布电容和阻抗匹配。3.在总线上一定要接上拉电阻,不然DS18B20的供电不足,会导致数据不准确。如果没有接上拉电阻,把设备的电源接到5V左右也能给设备充足的电能。欢迎访问我的网站BruceOu的哔哩哔哩BruceOu的主页BruceOu的博客BruceOu的CSDN博客BruceOu的简书。原创 2023-11-19 23:00:27 · 1068 阅读 · 0 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第2部分 外设篇 - 第2章 温湿度传感器AHT10
AHT10,新一代温湿度传感器在尺寸与智能方面建立了新的标准:它嵌入了适于回流焊的双列扁平无引脚SMD封装,底面4 x 5mm ,高度1.6mm。传感器输出经过标定的数字信号,标准I2C格式。AHT10 配有一个全新设计的ASIC专用芯片、一个经过改进的MEMS半导体电容式湿度传感元件和一个标准的片上温度传感元件,其性能已经大大提升甚至超出了前一代传感器的可靠性水平,新一代温湿度传感器,经过改进使其在恶劣环境下的性能更稳定。原创 2023-11-05 11:24:22 · 487 阅读 · 0 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第2部分 外设篇 - 第1章 温湿度传感器DHT11
DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。DHT11传感器包括,并与一个高性能 8 位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个 DHT11 传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在 OTP 内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。原创 2023-09-29 17:40:38 · 607 阅读 · 0 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第22章 SPI
SPI,是Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。是一种高速全双工的通信总线,它由摩托罗拉公司提出,当前最新的为 V04.01—2004 版。它被广泛地使用在ADC、LCD 等设备与 MCU 间通信的场合。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。原创 2023-02-09 22:41:41 · 4220 阅读 · 2 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第21章 I2C
I2C总线是PHLIPS公司推出的一种双线式半双工串行总线,是具备多主机系统所需的总线裁决和高低速器件同步功能的高性能串行总线。用于连接微控器及外围设备。I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。 物理层1)它只使用两条总线线路 :一条双向串行数据线(SDA),一条串行时钟线(SCL)。见下图。2)每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之间的访问。3)多主机同时使用总线时,为了防止数据冲突,会利用仲裁方式决定由哪个设备占用总线。原创 2022-09-17 23:27:04 · 2912 阅读 · 2 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第20章 GD32的存储结构
开发板:GD32F207I-EVAL。原创 2022-09-02 20:33:08 · 3291 阅读 · 0 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第19章 程序加密
开发板:GD32F207I-EVAL。原创 2022-08-25 20:39:37 · 1781 阅读 · 2 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第18章 CRC
开发板:GD32F207I-EVAL。原创 2022-08-24 10:39:30 · 1174 阅读 · 0 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第17章 看门狗
开发板:GD32F207I-EVALGD32 有两个看门狗,一个是独立看门狗,另外一个是窗口看门狗,独立看门狗号称宠物狗,窗口看门狗号称警犬,本章我们主要分析这两只看门狗的功能框图和它的应用。原创 2022-08-24 10:28:31 · 3959 阅读 · 2 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第16章 RTC
GD32 的 RTC 外设,实质是一个掉电后还继续运行的定时器。从定时器的角度来说,相对于通用定时器 TIMER 外设,它十分简单,只有很纯粹的计时功能(当然,可以触发中断);但从掉电还继续运行的角度来说,它却是 GD32中唯一一个具有如此强大功能的外设。所以 RTC 外设的复杂之处并不在于它的定时功能,而在于它掉电还继续运行的特性。以上所说的掉电,是指主电源 VDD断开的情况,为了 RTC 外设掉电继续运行,必须给GD32芯片通过 VBAT引脚接上锂电池。......原创 2022-08-16 09:21:29 · 4045 阅读 · 3 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第15章 低功耗(电源管理)
开发板:GD32F207I-EVAL。原创 2022-08-05 07:53:35 · 6467 阅读 · 0 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第14章 内部温度传感器
开发板:GD32F207I-EVAL。原创 2022-08-03 23:29:25 · 2919 阅读 · 0 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第13章 DAC
数字/模拟转换模块(DAC)是12位数字输入,电压输出的数字/模拟转换器。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结果。...原创 2022-07-25 07:44:51 · 2674 阅读 · 0 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第12章 ADC
MDKKeil5.30开发板MCUGD32F207IK。原创 2022-07-17 22:06:39 · 5960 阅读 · 2 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第11章 CPU的高级代理-DMA
开发环境:MDK:Keil 5.30开发板:GD32F207I-EVALMCU:GD32F207IKDMA (Direct Memory Access,直接存储器存取),是一种可以大大减轻 CPU 工作量的数据存取方式,DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输,因而被广泛地使用。早在 8086 的应用中就已经有 Intel 的 8237 这种典型的 DMA 控制器,而 GD32的 DMA 则是以类似外设的形式添加到 Cortex 内原创 2022-07-09 23:10:57 · 2540 阅读 · 0 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第10章 串口通信
开发环境:MDK:Keil 5.30开发板:GD32F207I-EVALMCU:GD32F207IK10.1串口简介USART(Universal Synchronous Asynchronous Receiver and Transmitter,通用同步-异步接收发射器)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA原创 2022-05-19 23:10:11 · 4560 阅读 · 0 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第9章 呼吸灯
开发环境:MDK:Keil 5.30开发板:GD32F207I-EVALMCU:GD32F207IK9.1呼吸灯的工作原理呼吸灯,就是指灯光设备的亮度随着时间由暗到亮逐渐增强,再由亮到暗逐渐衰减,很有节奏感地一起一伏,就像是在呼吸一样,因而被广泛应用于手机、电脑等电子设备的指示灯中。要使用数字器件控制灯光的强弱,我们很自然就想到 PWM(脉冲宽度调制)技术。假如以LED 作为灯光设备,且由控制器输出的 PWM 信号可以直接驱动 LED,PWM 信号中的低电平可点亮 LED 灯。当 LED 以较高原创 2022-05-18 20:59:49 · 2826 阅读 · 3 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第8章 PWM输出
开发环境:MDK:Keil 5.30开发板:GD32F207I-EVALMCU:GD32F207IK8.1 PWM输出的工作原理脉冲宽度调制(PWM),是英文“Pulse Width Modulation” 的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。GD32 的定时器除了 TIMER5 和 6(基本定时器)。其他的定时器都可以用来产生 PWM 输出。每个定时器有四个通道,每一个通道都有一个捕获比较寄存器,,将寄存器值原创 2022-05-17 23:20:49 · 7367 阅读 · 2 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第7章 定时器
开发环境:MDK:Keil 5.30开发板:GD32F207I-EVALMCU:GD32F207IK7.1定时器的工作原理概述系统滴答定时器一般用来提供“心跳”作用,而GD32定时器最基本功能也是定时,可以设置不同时间长度的定时。定时器除了最基本的定时功能外,定时器与GPIO有挂钩使得它可以发挥强大的作用,比如可以输出不同频率、不同占空比的方波信号、PWM信号,同时做为输入捕获功能时,可以测量脉冲宽度、实现电容按键检测等等。GD32有三类定时器,基本定时器就是单纯的定时计数器,通用定时器多了四个原创 2022-05-17 07:26:52 · 9146 阅读 · 10 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第6章 按键
开发环境:MDK:Keil 5.30MCU:GD32F207IK6.1普通方式6.1.1普通方式工作原理按键 GPIO 端口有两个方案可以选择,一是采用上拉输入模式,因为按键在没按下的时候,是默认为高电平的,采且内部上拉模式正好符合这个要求。第二个方案是直接采用浮空输入模式,因为按照硬件电路图,在芯片外部接了上拉电阻,其实就没必要再配置成内部上拉输入模式了,因为在外部上拉与内部上拉效果是一样的。笔者本文将会使用K2。6.1.2普通方式实现主函数代码如下:/* Includes******原创 2022-05-14 22:30:30 · 2747 阅读 · 1 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第5章 跳动的心脏-Systick
开发环境:MDK:Keil 5.30MCU:GD32F207IKCortex-M的内核中包含Systick定时器了,只要是Cortex-M系列的MCU就会有Systick,因此这是通用的,下面详细分析。5.1 Systick工作原理分析SysTick 定时器被捆绑在 NVIC 中,用于产生 SysTick 异常(异常号 :15)。在以前,操作系统和所有使用了时基的系统都必须有一个硬件定时器来产生需要的“滴答”中断,作为整个系统的时基。滴答中断对操作系统尤其重要。例如,操作系统可以为多个任务分配不同原创 2022-05-10 20:58:00 · 2867 阅读 · 0 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第4章 GD32启动流程详解(Keil版)
开发环境:MDK:5.30MCU:GD32F207IK对于我们常用的桌面操作系统而言,我们在开发应用时,并不关心系统的初始化,绝大多数应用程序是在操作系统运行后才开始运行的,操作系统已经提供了一个合适的运行环境,然而对于嵌入式设备而言,在设备上电后,所有的一切都需要由开发者来设置,这里处理器是没有堆栈,没有中断,更没有外围设备,这些工作是需要软件来指定的,而且不同的CPU类型、不同大小的内存和不同种类的外设,其初始化工作都是不同的。本文将以GD32F207IK (基于Cortex-M3)为例进行讲解。原创 2022-05-10 00:01:40 · 5769 阅读 · 1 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第3章 GPIO流水灯的前世今生
开发环境:MDK:Keil 5.30MCU:GD32F207IK上一章通过控制GPIO的高低电平实现了流水灯,但只是告诉了大家怎么做,如何实现流水灯,本文将深入剖析的GPIO流水灯的前生今世,深入研究流水灯的调用逻辑和数据结构。3.1 GPIO配置概述前面一章一个大概讲解GPIO的配置过程和核心的寄存器,当然啦,关于GPIO的寄存器远不止我上一章列出来的,还有很多,具体请参看《GD32F20x_User_Manual》中GPIO相关的内容吧。根据前面实现的GPIO流水灯,本文将其归纳如下:原创 2022-05-08 18:31:51 · 2922 阅读 · 0 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第2章 初识GPIO流水灯
开发环境:MDK:Keil 5.30MCU:GD32F207IK2.1 GPIO工作原理熟悉单片机的朋友都知道,学习的第一个例程就是流水灯,要想实现流水灯,首先必须了解GPIO的工作原理。GPIO的基本结构如下图所示。GD32 的 IO 口可以由软件配置成如下 8 种模式: 输入模式 浮空输入:浮空(floating)就是逻辑器件的输入引脚即不接高电平,也不接低电平。由于逻辑器件的内部结构,当它输入引脚悬空时,相当于该引脚接了高电平。一般实际运用时,引脚不建议悬空,易受干扰。 通俗讲就是原创 2022-05-03 22:27:39 · 5180 阅读 · 3 评论 -
【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第1章 开发环境搭建
开发环境:MDK:Keil 5.30MCU:GD32F207IK1.1 GD32F207I-EVAL开发板简介笔者使用的开发板是兆易创新设计的GD32F207I-EVAL开发板。GD32F207I-EVAL开发板使用 GD32F207IK作为主控制器,主频120MHz、集成3MB Flash、256KB SRAM、通用定时器*10、Adv. TM*2、Basic TM*2、系统时钟*1、看门狗*2、RTC*1、USART*4、UART*4、I2C*3、SPI*3、I2S*1、SDIO*1、CAN原创 2022-05-01 22:13:19 · 8236 阅读 · 0 评论