![](https://img-blog.csdnimg.cn/e58c65b3dd7c4552afa5a5a10ccd41c0.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
瑞萨MCU基础入门教程
文章平均质量分 90
本专栏基于瑞萨RA6M5芯片编写,使用百问网的 DShanMCU-RA6M5开发板。内容涉及瑞萨MCU的入门(FSP、MDK进行开发)、RTSO基础。
挨踢民工biubiu
种一棵树最好的时间是十年前,其次是现在。今天不走,明天要跑!
展开
-
瑞萨MCU入门教程(非常详细的瑞萨单片机入门教程)
得益于瑞萨强大的MCU、强大的软件开发工具([e² studio](https://www.renesas.cn/cn/zh/software-tool/e-studio)),也得益于瑞萨和RA生态工作室提供的支持,我们团队编写了《ARM嵌入式系统中面向对象的模块编程方法》,全书37章,将近500页:- 讲解面向对象编程在单片机开发中的使用- 结合FSP软件包实例分析外设驱动- 讲解如何使用RASC配置片上设备- 教你如何编写面向对象编程- 更讲解如何操作外接的模块:引入大型项目中的编程思想原创 2023-09-09 17:24:12 · 5620 阅读 · 0 评论 -
瑞萨GUI(LVGL)入门移植实战教程基于e² studio(更新完结!)
本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 ,LVGL版本 V8.3.8。如果你想熟悉瑞萨的e² studio以及FSP,那么本教程也能也能为你提供很好的入门以及使用指导。教程理论与实践相结合带你走进 LVGL 、完成 LVGL 的移植(移植、显示、触摸与按键控制)!原创 2023-09-09 16:28:37 · 292 阅读 · 0 评论 -
【环境搭建】在e2studio中使用DAP进行开发调试(基于DShanMCU-RA6M5开发板)
在e2studio中使用DAP进行开发调试(基于DShanMCU-RA6M5开发板)转载 2023-08-07 10:16:09 · 500 阅读 · 0 评论 -
第1章_瑞萨MCU零基础入门系列教程之单片机程序的设计模式
裸机程序的设计模式可以分为:轮询、前后台、定时器驱动、基于状态机。前面三种方法都无法解决一个问题:假设有 A、B 两个都很耗时的函数,无法降低它们相互之间的影响。第 4 种方法可以解决这个问题,但是实践起来有难度。原创 2023-09-09 17:27:28 · 1860 阅读 · 1 评论 -
第2章_瑞萨MCU零基础入门系列教程之面向过程与面向对象
本章目标- 理解面向过程与面向对象编程方法的特点- 锻炼面向对象编程的能力原创 2023-09-09 17:33:19 · 1268 阅读 · 0 评论 -
第3章_瑞萨MCU零基础入门系列教程之开发环境搭建与体验
瑞萨处理器的软件开发支持多种集成开发环境,比如瑞萨官方的 e2 studio,还有使用非常广泛的 Keil MDK。本节对这些开发软件进行简单介绍,比较 e2 studio 和 MDK 这两个 IDE,提供选择建议。原创 2023-09-09 17:39:12 · 2277 阅读 · 0 评论 -
第4章_瑞萨MCU零基础入门系列教程之瑞萨 MCU 源码设计规范
本章目标- 了解 FSP 源码结构和设计规范- 理解模块设计思路与调用方法原创 2023-09-09 17:41:18 · 1557 阅读 · 0 评论 -
第5章_瑞萨MCU零基础入门系列教程之GPIO输入输出
本章目标- 了解RASC的使用- 掌握GPIO的配置与使用原创 2023-09-10 11:26:19 · 1660 阅读 · 0 评论 -
第6章_瑞萨MCU零基础入门系列教程之串行通信接口(SCI)
一个嵌入式产品由许多元器件组成的,它们之间要互相协作,相互之间要进行通信。不同的元器件支持的通信方式是不同的,有的是串行的,有的是并行的;有的是同步的,有的是异步的。本章目标- 了解串行通信协议- 了解SCI模块内部原理原创 2023-09-10 11:30:45 · 1912 阅读 · 0 评论 -
第7章_瑞萨MCU零基础入门系列教程之UART
本章目标- 使用RASC快速操作UART- 理解它的内部流程,改进程序原创 2023-09-10 11:32:19 · 1753 阅读 · 0 评论 -
第8章_瑞萨MCU零基础入门系列教程之SCI SPI
本章配置的SPI是RA芯片里SCI模块中的一种模式,因而其配置方法和上一章的SCI中的UART模式配置十分的类似。本节实验没有和其它外设相连,因而可以选择任意SCI通道:把它设置为“Simple SPI”模式,并使用其默认引脚即可。在RASC中创建了工程后,在“Pins”里面的“Peripherals”中展开“Connectivity:SCI”,选择其中一个SCI通道,例如SCI5,在“Pin Configuration”配置界面里的“Operation Mode”中将操作模式选为“Simple SPI原创 2023-09-10 11:34:27 · 1174 阅读 · 0 评论 -
第9章_瑞萨MCU零基础入门系列教程之SCI I2C
本章目标- 使用RASC快速配置SCI的I2C模式- 学会使用SCI-I2C的API进行数据收发本章配置的I2C是RA芯片里SCI模块中的一种模式,因而其配置方法和之前的《第7章7.1 sci_uart模块的使用》的UART模式配置十分的类似。板载的I2C模块是一片EEPROM,原理图如下图所示:原创 2023-09-10 11:36:20 · 1410 阅读 · 0 评论 -
第10章_瑞萨MCU零基础入门系列教程之中断控制单元简介
本书使用的RA处理器R7FAM5系列使用的是ARM Cortex-M33内核,其中断机制是在Cortex-M33内核的中断机制基础上进行的外设中断扩展,因而RA处理器的中断处理需要遵循Cortex-M33内核的基本规则,包括但不限于中断优先级最高等级、中断优先级分类、中断向量的分配等。在RA处理器中,中断控制归于一个叫“Interrupt Controller Unit(中断控制单元)”的模块管理控制,简称ICU。ICU模块将异常向量中断控制器(NVIC)、DMA控制器(DMAC)和数据传输控制器(原创 2023-09-10 11:38:29 · 607 阅读 · 0 评论 -
第11章_瑞萨MCU零基础入门系列教程之SysTick
SysTick定时器也被称为滴答定时器。在Cortex架构的处理器里,有一个24bit的向下计数定时器,它就是滴答定时器。它不是处理器之外的、跟GPIO等设备同等地位的设备,而是位于处理器内部的定时器。对于Cortex-M33内核而言,它拥有2个滴答定时器:一个用于非安全系的滴答定时器,另一个用于安全系的滴答定时器。如果开发者不使用Cortex-M33的TrustZone的程序安全功能,那么只能使用一个非安全系的滴答定时器。滴答定时器有4个寄存器用于控制和获取状态:a) 控制和状态寄存器:SYS原创 2023-09-10 11:46:04 · 726 阅读 · 0 评论 -
第12章_瑞萨MCU零基础入门系列教程之外部中断实验
本书《第10章 中断控制单元简介》中提到过:可以通过事件链接的方式,将ICU的中断事件连接到用户自定义的中断服务函数,由用户自定义处理该中断。外部中断自然也可以这样做,将按键的GPIO对应的外部中断链接到一个自定义的中断函数去,例如key_irq,在key_irq中对寄存器进行读写和清零、执行用户代码。这样做有个好处是开发者可以高自由度地设计中断函数,对中断的处理具有极高的掌控力。但是却没有很好地利用RASC的配置功能。使用RASC配置ICU模块来使用中断,可以不关心底层寄存器的处理,只需要关心中断的触原创 2023-09-10 11:48:16 · 1100 阅读 · 0 评论 -
第13章_瑞萨MCU零基础入门系列教程之Common SPI
RA芯片的SPI分为Simple SPI和Common SPI。Simple SPI就是本书《第8章 SCI SPI》所讲的SCI模块的SPI模式,是使用串行总线来模拟SPI协议,而本章所讲的是芯片内部实际存在的一个硬件SPI控制器模块。本章将会从Common SPI在RASC中的配置开始讲解,最后编写程序操作OLED(它的驱动芯片SSD1306),重点在于学习使用Common SPI的API。原创 2023-09-10 11:50:44 · 1040 阅读 · 0 评论 -
第14章_瑞萨MCU零基础入门系列教程之QSPI
普通SPI协议有很多扩展:Dual SPI、Quad SPI等。通过前面章节对SPI接口协议的分析已经知道,普通SPI有4个IO控制:CS/SCK/MOSI/MISO,在通信的时候由主机通过CS选中从机设备,发出SCK时钟,主机把数据驱动到MOSI线上发给从机,主机从MISO线上将数据读进来。对于Dual SPI(双线串行外设接口),它同样也由4根线共同完成通信:CS/SCK/IO0/IO1,和SPI不同的是,Dual SPI在收发数据的时候是使用2根数据线IO0和IO1进行的,而不是像SPI那样收原创 2023-09-10 11:53:24 · 1344 阅读 · 0 评论 -
第15章_瑞萨MCU零基础入门系列教程之Common I2C总线模块
RA芯片的I2C分为Simple I2C和Common I2C。Simple I2C就是本书《第8章 SCI SPI》所讲的SCI模块的I2C模式,是使用串行总线来模拟I2C协议,而本章所讲的Common I2C是芯片内部实际存在的一个硬件I2C控制器模块。得益于FSP的封装,Simple I2C和Common I2C在应用上并没有很大的差别。原创 2023-09-10 11:59:48 · 931 阅读 · 0 评论 -
第16章_瑞萨MCU零基础入门系列教程之CAN 协议
瑞萨对于CAN协议的入门写了一本很好的入门书,是面向CAN总线初学者。对于CAN是什么、CAN的特征、标准规格下的位置分布等、CAN的概要及CAN的协议都进行了说明。CAN是Controller Area Network 的缩写,是ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“原创 2023-09-10 12:03:54 · 797 阅读 · 0 评论 -
第17章_瑞萨MCU零基础入门系列教程之CAN FD 模块
本章目标- 使用 RASC 快速配置 CAN FD 模块- 学会使用 CAN FD 的 API 进行通信原创 2023-09-10 12:10:45 · 1535 阅读 · 0 评论 -
第18章_瑞萨MCU零基础入门系列教程之GPT
通用PWM定时器(GPT,Genera- PWM Timer)是RA MCU的一种32/16位的定时器外设。在GPT当中,可分为GPT32和GPT16,它们最主要的区别是计数器的位数不同。GPT32是32位的定时器,能计数的范围为:0~0xFFFF_FFFF; 而GPT16是16位的定时器,能计数的范围为:0~0xFFFF。GPT模块可用于计数事件、测量外部输入信号、作为通用计时器并产生周期性中断、以及输出周期性PWM信号到GTIO引脚。GPT也可用于输出单个脉冲,但是注意这是通过软件来实现的,GPT硬原创 2023-09-10 12:15:24 · 1337 阅读 · 0 评论 -
第19章_瑞萨MCU零基础入门系列教程之RTC
RA6M5的RTC(Real Time Clock)外设,实质是一个掉电后还继续运行的定时器。RA6M5的实时时钟(RTC)有两种计数模式:日历计数模式、二进制计数模式,可以通过寄存器的设置来切换模式。对于日历计数模式,RTC具有从2000年到2099年的100年日历,并自动调整闰年的日期。对于二进制计数模式,RTC计数秒,并保留信息作为串行值。二进制计数模式可用于公历(西历)以外的日历。可以选择作子时钟振荡器或LOCO作为时间计数器的计数源。RTC使用128Hz的时钟,通过将计数源除以预分频器的值获得原创 2023-09-10 12:17:20 · 710 阅读 · 0 评论 -
第20章_瑞萨MCU零基础入门系列教程之DAC输出模拟信号
计算机里处理的都是数字0/1信号,而自然界几乎都是模拟信号,比如音频信号、无线传输信号等,这就要求计算机具有模拟信号的输出能力,将数字信号(离散信号)转换为模拟信号(连续信号)的器件就叫数模转换器(Digital-to-Analog Converter,DAC)。按原理可分为:Nyquist型和过采样型。Nyquist型转换器按其结构又可大致分为电阻分压型、R_2R型、电荷分配型和电流驱动型。下图所示为DAC转换过程,输入的数字编码Din(dn1 : d0),按其权值大小转换成相应的模拟量并相加,相原创 2023-09-13 22:45:24 · 904 阅读 · 0 评论 -
第21章_瑞萨MCU零基础入门系列教程之事件链接控制器ELC
ELC:Event Link Controller,事件链接控制器。它用于链接芯片上两个不同的外设,通过外设A的某个中断事件触发外设B去执行某个动作,这个过程是通过芯片内部硬件信号的连接完成的,不需要占用CPU资源。因而ELC可以帮助开发者完成许多同步触发的工作,而不会引起CPU资源的过多浪费。ELC支持的事件类型多达219种。当产生了一个ELC事件的时候,也可以触发激活DTC功能。原创 2023-09-13 22:48:13 · 861 阅读 · 0 评论 -
第22章_瑞萨MCU零基础入门系列教程之DMA控制器
DMA(Direct Memory Access)直接内存访问,可以大大减轻CPU工作量。CPU执行的众多指令中,有的用于计算、有的用于控制程序、有的用于转移数据等。其中转移数据的指令,尤其是转移大量数据,会占用大量CPU。如果是把外设A的数据,传给外设B,这种情况其实不需要CPU一直参与,只需在A、B之间创建个通道,让它们自己传输即可。这就是DMA设计的目的,在进行大量数据转移时较少CPU的干预,让DMA专注于数据转移,让CPU专注于计算、控制。DMA主要实现将A处的数据直接搬运到B处,这里的A、B可原创 2023-09-13 22:51:04 · 1180 阅读 · 0 评论 -
第23章_瑞萨MCU零基础入门系列教程之ADC与DSP
自然界的信号几乎都是模拟信号,比如光亮、温度、压力、声音,而为了方便存储、处理,计算机里面都是数字的0/1信号,将模拟信号(连续信号)转换为数字信号(离散信号)的器件就叫模数转换器(Analog-to-Digital Converter,ADC)。按原理可分为:并行比较型A/D转换器(FLASH ADC)、逐次比较型A/D转换器(SAR ADC)和双积分式A/D转换器(Double Integral ADC)。A/D转换过程通常为4步:采样、保持、量化和编码。如下图所示,原创 2023-09-13 22:52:49 · 1275 阅读 · 1 评论 -
第24章_瑞萨MCU零基础入门系列教程之内部温度传感器-TSN
TSN本身集成在瑞萨RA6M5的ADC模块之中,使用TSN其实就是使用ADC0或ADC1里面的TSN通道而已。不需要在FSP的Pins中添加TSN引脚,只需要在ADC的Stack模块中,依次进入如下配置界面:Module->Input->Channel Scan Mask,勾选“Temperature Sensor”,其它的配置和《第23章ADC与DSP》里对于ADC的配置一样。原创 2023-09-13 22:55:49 · 774 阅读 · 0 评论 -
第25章_瑞萨MCU零基础入门系列教程之看门狗定时器-WDT
一般来说,看门狗也叫看门狗定时器,从本质上面来看,其实它就是一个计数器,在使用的时候,需要给它一个数值,随后看门狗的计数器根据计数方向开始累计,在看门狗的计数器达到预设的数值之前,可以进行重置看门狗计数器的操作,也就是俗称的“喂狗”。如果没有在计数器发生溢出之前喂狗的话,看门狗就会产生复位请求或者不可屏蔽中断请求(NMI-Non Maskable Interrupt),这会导致系统重启。瑞萨RA6M5处理器的看门狗定时器的特性见下表:原创 2023-09-13 22:56:58 · 635 阅读 · 0 评论 -
第26章_瑞萨MCU零基础入门系列教程之独立看门狗定时器-IWDT
IWDT (Independent Watchdog Timer)由一个14位的向下计数器组成,可以将应用程序从错误中恢复处理(比如重启系统)。应用程序必须在允许的计数窗口内进行刷新计时器,如果计数器下溢了,IWDT将复位MCU或生成不可屏蔽中断(NMI)。瑞萨RA6M5处理器的看门狗定时器的特性见下表:原创 2023-09-13 22:58:27 · 826 阅读 · 0 评论 -
第27章_瑞萨MCU零基础入门系列教程之freeRTOS实验
本章目标- 学会使用RASC创建一个基于freertos的工程;- 学会使用RASC创建freertos任务,体验RTOS的多任务调度;原创 2023-09-13 23:00:05 · 959 阅读 · 0 评论 -
第28章_瑞萨MCU零基础入门系列教程之基于面向对象的工程结构
在前面的章节里,讲解了瑞萨RA6M5的常用外设,重点在于模块的操作原理、如何使用RASC进行配置、如何编写程序。这些模块功能单一,RASC生成的代码封装良好,也是基于面向对象的思想构造了对应的结构体。但是在使用这些模块时,我们没有特意使用面向对象的思想来写程序。本章之后的内容,将会在FSP所提供的HAL库基础上,去操作更丰富的模块。这些模块的驱动程序,不应该跟底层的HAL库紧密绑定:比如温湿度传感器DHT11的驱动程序,既可以在RA6M5上运行,也能够非常容易地移植到其他平台上。在编写模块驱动程序时,就原创 2023-09-13 23:02:24 · 1013 阅读 · 0 评论 -
第29章_瑞萨MCU零基础入门系列教程之改进型环形缓冲区
环形缓冲区是一个先进先出(FIFO)的闭环的存储空间。通俗的理解为,在内存中规划了一块“圆形”的地,将该“圆形”进行N(Ring Buffer的大小)等分,如下图所示:但是实际上,处理器的内存不可能是这样一个闭环的存储方式,而是一片连续的,有起始有结束的空间:开发者在程序中只能申请一段有头有尾的内存,通过软件设计将这片内存实现为一个环形的缓冲区。原创 2023-09-13 23:04:29 · 377 阅读 · 0 评论 -
第30章_瑞萨MCU零基础入门系列教程之IRDA红外遥控实验
NEC协议是众多红外遥控协议的其中一种,除NEC外,还有RC5、RC6等协议。市面上买到的非学习型万能电视遥控器大多集成一种或多种编码,一般都支持NEC协议。NEC编码的一帧(通常按一下遥控器按钮所发送的数据)由引导码、地址码及数据码组成,如下图所示,把地址码及数据码取反的作用是验证数据的正确性。原创 2023-09-13 23:06:30 · 804 阅读 · 0 评论 -
第31章_瑞萨MCU零基础入门系列教程之WIFI&蓝牙模块驱动实验
本章目标了解WiFi蓝牙芯片W800的通信协议;学会使用串口收发AT指令实现开发板联网原创 2023-09-13 23:07:50 · 1012 阅读 · 1 评论 -
第32章_瑞萨MCU零基础入门系列教程之DS18B20温度获取实验
DS18B20温度传感器具有线路简单、体积小的特点,用来测量温度非常简单,在一根通信线上可以挂载多个DS18B20温度传感器。用户可以通过编程实现9~12位的温度读数,每个DS18B20有唯一的64位序列号,保存在rom中,因此一条总线上可以挂载多个DS18B20。温度寄存器格式如下表所示:原创 2023-09-13 23:09:12 · 381 阅读 · 0 评论 -
第33章_瑞萨MCU零基础入门系列教程之DHT11温湿度获取实验
DHT11是一款可测量温度和湿度的传感器。比如市面上一些空气加湿器,会测量空气中湿度,再根据测量结果决定是否继续加湿。DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,具有超小体积、极低功耗的特点,使用单根总线与主机进行双向的串行数据传输。DHT11测量温度的精度为±2℃,检测范围为-20℃-60℃。湿度的精度为±5%RH,检测范围为5%RH-95%RH,常用于对精度和实时性要求不高的温湿度测量场合。原创 2023-09-13 23:11:31 · 536 阅读 · 0 评论 -
第34章_瑞萨MCU零基础入门系列教程之SR04超声波测距实验
超声波测距模块是利用超声波来测距。模块先发送超声波,然后接收反射回来的超声波,由反射经历的时间和声音的传播速度340m/s,计算得出距离。SR04是一款常见的超声波传感器,模块自动发送8个40KHz的方波,自动检测是否有信号返回,用户只需提供一个触发信号,随后检测回响信号的时间长短即可。SR04采用5V电压,静态电流小于2mA,感应角度最大约15度,探测距离约2cm-450cm。原创 2023-09-13 23:12:34 · 777 阅读 · 0 评论 -
第35章_瑞萨MCU零基础入门系列教程之ADXL345三轴传感器驱动实验
ADXL345是一款小而薄的超低功耗3轴加速度计,分辨率高(13位),测量范围达±16g。数字输出数据为16位二进制补码格式,可通过SPI(3线或4线)或I2C数字接口访问。该器件提供多种特殊检测功能。活动和非活动检测功能:通过比较任意轴上的加速度与用户设置的阈值来检测有无运动发生。敲击检测功能:可以检测任意方向的单振和双振动作。自由落体检测功能:可以检测器件是否正在掉落。这些功能可以独立映射到两个中断输出引脚中的一个。原创 2023-09-14 10:03:47 · 866 阅读 · 0 评论 -
第36章_瑞萨MCU零基础入门系列教程之步进电机控制实验
本书使用的步进电机型号是28BYJ-48,它是一款常见的步机电机,其名称的含义为外径28毫米四相八拍式永磁减速型步进电机。型号的含义如下:- 28:步进电机的有效最大外径是28毫米- B:表示是步进电机- Y:表示是永磁式- J:表示是减速型(减速比1:64)- 48:表示四相八拍先说什么是“4相永磁式”的概念,28BYJ-48 的内部结构示意图如下所示。原创 2023-09-14 22:22:55 · 705 阅读 · 0 评论 -
第37章_瑞萨MCU零基础入门系列教程之DAC数模转换模块
核心芯片是TLC5615,主机通过SPI接口发出一个数字量,TCL5615将数字量转化为模拟量,并通过OUT引脚输出模拟电压来点亮LED。通过LED的亮度形象地感受DAC的效果。这个模块的参考电压是2.048V,可以输出的最大电压是2倍参考电压,即4.096V。TLC5615是一个10bit的DAC转换芯片,用户需要将需要转换的数字量左移2bit后再通过SPI发送给TLC5165,数据格式和转换关系如下图所示:原创 2023-09-14 22:26:58 · 801 阅读 · 0 评论