【致敬未来的攻城狮计划】— 连续打卡第九天:问题解决(Usage Error:Too many arguments: R7FA2E1A92DFM)、学习RA寄存器。

文章介绍了瑞萨RA系列MCU的初步体验,包括开发环境的搭建,RA寄存器的基础知识,如RA寄存器与固件库的关系,CPU内核及片上外设组成,以及IOPORT在配置引脚时的作用,详细讲解了端口寄存器的功能和使用。
摘要由CSDN通过智能技术生成

系列文章目录

 1.连续打卡第一天:提前对CPK_RA2E1是瑞萨RA系列开发板的初体验,了解一下

2.开发环境的选择和调试(从零开始,加油)

3.欲速则不达,今天是对RA2E1 基础知识的补充学习。

4.e2 studio 使用教程

5.Keil配置使用(使用 RASC 生成 Keil 工程)

6.Keil配置使用(使用 RASC 生成 Keil 工程)

7.(电脑重装系统)学习RA产品家族选型手册


文章目录

目录

系列文章目录

前言

一、问题解决(Usage Error:Too many arguments: R7FA2E1A92DFM)?

二、RA寄存器学习

1.RA寄存器与固件库是什么?

2.RA CPU里面有什么?

3.存储器映射

二、用寄存器设置引脚的必备1.IOPORT介绍

2.IOPORT工作方式

3.端口引脚功能选择寄存器

4.端口输入/输出数据寄存器

总结

风月待人


前言

        前期我们学习了  e2-studio开发环境搭建、keil软件开发环境搭建、RA MCU基础知识学习,今天我们从RA  寄存器入手,开始学习寄存器。往期文章大家可以看下,上面系列文章目录。


一、问题解决(Usage Error:Too many arguments: R7FA2E1A92DFM)?

 遇到以上问题,解决方法是   在用keil打开  RASC 的时候,提前先打开  RASC  即可正常导入工程,使用无问题。

二、RA寄存器学习

1.RA寄存器与固件库是什么?

        寄存器实际上与 RAM、FLASH 一样,也是芯片内部的一种存储器(Memory)。一般而言,RAM 是程序运行的内存,FLASH 则是用来保存程序本身。寄存器与 RAM、FLASH 等存储器的不同之 处在于:寄存器除了保存了芯片的功能状态之外,还是配置和控制芯片的桥梁,我们可以通过寄 存器配置和操作芯片的功能。

        一般而言,我们在对 MCU 芯片进行编程时有两种编程方式,一种是寄存器编程,另外一种是固 件库编程(或者说库函数编程)。那么,固件库又是什么东西?固件库说白了其实是通过寄存器 编程之后的产物,它是对寄存器操作的一种封装,最终提供给开发者一套固定的函数 API 进行调 用。

        我们可以从以下两种角度来了解寄存器编程与固件库编程的区别。从程序执行效率的角度来看: 一般而言,寄存器编程生成的程序执行效率高,而固件库编程生成的程序执行效率不如寄存器编 程的。然而从开发者的角度来看:固件库编程使得开发者不必深入理解硬件层面的寄存器细节, 在开发时只需要调用库函数以实现所需的功能,因此可以提高开发者的开发效率。

2.RA CPU里面有什么?

MCU 芯片里面主要有两大部分,一是 CPU 内核,二是片上外设。

  1. ARM Cortex-M0+内核:作为RA2E1的核心处理器,它提供了高效的处理能力和低功耗特性。

  2. 存储器:RA2E1包含64KB的Flash存储器和4KB的RAM存储器。

  3. 外设接口:RA2E1支持多种外设接口,包括UART、SPI、I2C和ADC等。

  4. 中断控制器:RA2E1的中断控制器可以管理多达16个中断源。

  5. 时钟和定时器:RA2E1包含多个时钟和定时器模块,包括低功耗内部时钟、外部时钟和多个定时器/计数器。

  6. GPIO:RA2E1具有多个通用输入/输出端口,可用于连接外部设备。

类别外设模块
存储器模块(Memory)Flash、SRAM
直接内存访问(DMA)DTC、DMAC
总线(Bus)CSC、MPU
系统(System)POR/LVD、Reset、Mode control、Power control、 ICU、Clocks、CAC、 Battery backup、Register write protection
定时器(Timers)GPT、AGT、RTC、WDT/IWDT
通讯接口(Communication interfaces)SCI、IIC、SPI、QSPI、OSPI、SDHI、ETHERC、 CAN-FD、USBHS、USBFS、CEC
人机交互接口(Human machine interface)CTSU
模拟(Analog)ADC、DAC、TSN
数据处理(Data processing)CRC、DOC
事件链接(Event link)ELC
安全(Security)SCE9

        可以看到,芯片里面的外设模块有很多。其中部分外设模块是相对简单的,而部分则是非常复杂。

3.存储器映射

        我们可以看到,除了寄存器和 SRAM、Flash 的地址空 间区域以外,还存在着其他类型的地址空间区域,比如 QSPI area 和 OSPI area。Reserved area 表 示的是保留区域,尚未用到。


二、用寄存器设置引脚的必备
1.IOPORT介绍

        IO 引脚最基本的输出功能是输出高、低电平,实现开关控制(比如开关LED灯、继电器或三极管等); 最基本的输入功能是检测外部输入电平(比如通过引脚电平的高低区分按键是否被按下)。 IO 引脚还可以用来连接外部设备,与外部设备进行通讯,发送控制指令,采集传感器数据等等。

        IOPORT 即 I/O Port,在代码里面为了方便而写成 “IOPORT”,表示输入输出端口。         IOPORT 是 RA MCU 的一个外设模块,它用来控制芯片的引脚,对每一个引脚进行详细的配置。

配置:

  • 配置引脚为普通 IO 功能,即输入或输出高电平或者低电平。

  • 控制引脚的输入上拉电阻。

  • 控制引脚的驱动能力。

  • 控制引脚是否检测上升沿/下降沿/双边沿。

  • 控制引脚是否作为中断输入引脚。

  • 配置引脚为模拟输入功能或者将引脚在内部连接到其他外设模块。

        瑞萨 RA 系列芯片的 IO 端口从理论上被分成16个组(0~9, A, B, C, D, E, F),每组有16个引脚(0~15)。 然而,实际情况并非是完整的“16个组+每组16个引脚”的配置,而是因实际的芯片型号而异。 


2.IOPORT工作方式

  • 通用输入输出(GPIO)模式

    • 输入模式(浮空/上拉)

    • 输出模式(推挽/开漏)

  • 模拟输入功能模式

  • 复用功能模式

注:上图中的 “Pmn”,“m = 0 to 9, A, B”表示的是 IO 端口 m 的范围,而“n = 00 to 15”表示的是 IO 引脚 n 的范围。


3.端口引脚功能选择寄存器

位域名说明

0

PODR

端口输出数据

  • 0:设置 Pmn 引脚输出低电平

  • 1:设置 Pmn 引脚输出高电平

1

PIDR

端口输入数据

  • 0:表明 Pmn 引脚输入的电平状态是低电平

  • 1:表明 Pmn 引脚输入的电平状态是高电平

2

PDR

端口方向

  • 0:设置为输入引脚

  • 1:设置为输出引脚

4

PCR

上拉控制

  • 0:禁止输入上拉电阻

  • 1:使能输入上拉电阻

6

NCODR

输出开漏控制

  • 0:禁止开漏输出(即推挽输出)

  • 1:使能开漏输出

[11:10]

DSCR

端口驱动能力

  • 00:低驱动能力

  • 01:中驱动能力

  • 10:高速高驱动能力(对于部分引脚此选项无效,不能选用)

  • 11:高驱动能力

[13:12]

EOFR

上升沿/下降沿事件触发设置

  • 00:不检测

  • 01:检测上升沿

  • 10:检测下降沿

  • 11:检测双边沿(包括上升沿和下降沿)

14

ISEL

IRQ 输入中断使能

  • 0:禁止 IRQ 中断

  • 1:允许 IRQ 中断

15

ASEL

模拟输入使能

  • 0:禁止作为模拟功能引脚

  • 1:允许作为模拟功能引脚

16

PMR

端口模式控制

  • 0:Pmn 引脚用作 GPIO 引脚(数字输入/输出)

  • 1:Pmn 引脚用作复用功能引脚(连接到外设模块)

[28:24]

PSEL

端口引脚复用选择

需要查表选择该引脚的复用功能


4.端口输入/输出数据寄存器

端口输出数据寄存器:

位域名

说明

[15:0]

PDR

Pmn 引脚方向

  • 0:设置为输入引脚

  • 1:设置为输出引脚

[31:16]

PODR

Pmn 引脚输出数据

  • 0:设置引脚输出低电平

  • 1:设置引脚输出高电平

端口输入数据寄存器:

位域名

说明

[15:0]

PIDR

Pmn 引脚输入数据

  • 0:引脚输入的电平状态是低电平

  • 1:引脚输入的电平状态是高电平

[31:16]

EIDR

端口事件输入数据

  • 0:引脚输入的事件信号是低电平

  • 1:引脚输入的事件信号是高电平


总结

        以上内容基本上覆盖了基础开发的一些寄存器的讲解,都不是深刻的讲解,只是说对大家一个引导,更加细致的还需大家自行去学习。


风月待人

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值