【奇葩瑞萨-004】RX系列单片机的GPIO初始化

这篇具有很好参考价值的文章主要介绍了【奇葩瑞萨-004】RX系列单片机的GPIO初始化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


以RX66T单片机和RX130单片机为例。

与IO口相关的寄存器

端口的配置,就是写入端口配置相关寄存器的过程。
就瑞萨RX系列单片机而言,包括PORT寄存器和MPC寄存器。

端口(PORT)寄存器

  1. PDR:GPIO方向寄存器,读/写型
    1:输出
    0:输入(默认值)
    PORTm.PDR.BITn对应Pmn。

有些端口只内建了输入逻辑门电路,即便将其PDR位设置为1,也是无效的。
不存在的端口只可配置PDR(目的:省电),至于①哪些端口不存在、②PDR该配置成0还是1,就要参考目标单片机的数据手册“Initialization of the Port Direction Register (PDR)”章节。

  1. PODR:GPIO输出电平寄存器,读/写型
    1:输出H
    0:输出L(默认值)
    PORTm.PODR.BITn对应Pmn。
    有些端口只内建了输入逻辑门电路,即便将其PODR位设置为1,也不能输出。

  2. PIDR:端口输入电平寄存器,只读型
    1:输入了H
    0:输入了L
    PORTm.PIDR.BITn对应Pmn。
    不论Pmn的PDR位和PMR位如何设置,只要其MPC寄存器没有被配置为模拟模式(0x80),Pmn的瞬时输入电平就总能通过PIDR读出。

  3. PMR:端口模式寄存器,读/写型
    1:外设模式
    0:GPIO模式(默认值)
    PORTm.PMR.BITn对应Pmn。

  4. ODRy(y = 0, 1):端口开漏寄存器,读/写型
    1:CMOS输出
    0:NMOS开漏输出(默认值)
    PORTm.ODR0/1.BITx与Pmn的对应关系是

PORTm.ODR0 BIT6 BIT4 BIT2 BIT0
Pmn Pm3 Pm2 Pm1 Pm0
PORTm.ODR1 BIT6 BIT4 BIT2 BIT0
Pmn Pm7 Pm6 Pm5 Pm4
  1. PCR:端口输入上拉寄存器,读/写型
    1:有内部上拉
    0:无内部上拉(默认值)
    PORTm.PCR.BITn对应Pmn。
    如果端口设置为外部总线端口(WAIT端口除外)、通用输出口,外设输出口,那么PCR的设置是无效的。
    不存在端口不可配置PCR位,必须保留默认值0。

  2. 暂时不表:DSCR,DSCR2:端口驱动能力寄存器

端口功能控制(MPC)寄存器

  1. PWPR:MPC写保护寄存器,读/写型
    BIT7:PFSWE写保护位 0:可写入 1:不可写入
    BIT6:FPS写保护位 0:可写入 1:不可写入
    其它:保留位,必须保留默认值0。

  2. FPS:端口功能寄存器,读/写型
    BIT7:ASEL,模拟功能选择位
    BIT6:ISEL,EXTI功能选择位
    BIT5~0:PSEL,外设功能选择位
    MPC.PmnFPS对应Pmn。
    不同Pmn的上述BIT支持情况不同,应参考目标单片机的数据手册“Multi-Function Pin Controller (MPC)–Register Descriptions”章节。不支持的BIT位不可设定,必须保留默认值0。

  3. 暂时不表:PFCSE

  4. 暂时不表:PFCSS0

  5. 暂时不表:PFAOE0、PFAOE1

  6. 暂时不表:PFBCR0、PFBCR1、PFBCR2、PFBCR4

MPC.PmnFPS的设置过程

  1. 复位PMR位
  2. 设定外设端口的输入/输出方向
  3. 关闭FPS写保护
  4. 整体写入PmnFPS
  5. 打开FPS写保护
  6. 根据需要,置位PMR位

MPC寄存器设置注意事项

  1. 设置PmnFPS前,必须确保Pmn的PMR为0;否则,会有不可预料的信号在Pmn输入或输出。
  2. PmnFPS的设定值必须参照芯片手册。如果写入值超出手册的范围,则不能保证写入操作的正确性。
  3. 不能把同一个外设功能分配给多个引脚。比如一个UART只能有1个TX通道,不能有多个TX通道。
  4. 凡是模拟模式端口,要先设置为普通输入(先令PORTm.PMR.BITn=0,后令PORTm.PDR.BITn=0),再令PmnFPS的ASEL位为1(MPC.PmnFPS=0x80),以避免精度下降。
  5. PMR、PDR、PmnFPS的组合是有限的,如下:
状态 PMR PDR FPS.ASEL FPS.ISEL FPS.PSEL 注意
复位后 0 0 0 0 000000b 复位后端口是普通输入口
普通输入 0 0 0 0/1 x
普通输出 0 1 0 0 x
外设功能 1 x 0 0/1 外设功能
中断输入 1 0 0 1 x
不可屏蔽中断 x x x x x
模拟模式 0 0 1 x x
触摸 1 0 0 0 11001b 可当作一种外设功能
EXTAL/XTAL 0 0 x x x

注:x表示不需要设定,推荐保留0。

端口Pmn的初始化

参考意法半导体STM8S单片机的标准库函数来设计,端口初始化函数提供3个参数
分别是目标端口编号,端口模式,端口MPC设置

void GPIO_Init(gpio_pin_t pin, gpio_mode_t mode, uint8_t mpc_config);
//pin: 想要设定的端口序号Pmn
//mode: 要设定的端口模式
//mpc_config:要设定的PmnFPS

注意:PmnFPS需要在MPC解锁时才可写入

不同端口模式下,PORT、MCP寄存器的配置顺序

  1. 设置为复位后的状态
寄存器 PMR PODR PDR PCR PmnPFS PMR
设定值 0 0 0 0 0x00 -
  1. 设置为浮空输入&无中断
寄存器 PMR PODR PDR PCR PmnPFS PMR
设定值 0 0 0 0 0x00 -
  1. 设置为上拉输入&无中断
寄存器 PMR PODR PDR PCR PmnPFS PMR
设定值 0 0 0 1 0x00 -
  1. 设置为普通输出H(是不是推挽输出?)
寄存器 PMR PODR PDR PCR PmnPFS PMR
设定值 0 1 1 0 0x00 -
  1. 设置为普通输出L
寄存器 PMR PODR PDR PCR PmnPFS PMR
设定值 0 0 1 0 0x00 -
  1. 设置为外设功能
寄存器 PMR PODR PDR PCR PmnPFS PMR
设定值 0 0 0 0 查表 1
  1. 设置为模拟模式
寄存器 PMR PODR PDR PCR PmnPFS PMR
设定值 0 0 0 0 0x80 -

※1:"-"表示跳过
※2:应按照表格中从左到右的顺序设置寄存器文章来源地址https://www.toymoban.com/news/detail-634043.html

感想:与STM32 GPIO配置的对比

  1. 比照STM32,RX的PMR设置,相当于32上设置AFIO。
  2. RX比STM32的端口设置多了MPC,即“IO挂靠在哪个外设上”的设置。
  3. 在RX上,当某端口作为UART-TX功能时,在发送空闲时,似乎要设置它为普通输出H,才能保证空闲时TX线路维持高电平(很离谱?)

到了这里,关于【奇葩瑞萨-004】RX系列单片机的GPIO初始化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32 GD32 瑞萨 psoc 等单片机 无线wifi蓝牙最佳解决方案

    新联鑫威一系列低功耗高性价比sdio wifi/蓝牙combo的模块CYWL6208 , CYWL6312, CYW6209等可以搭配stm32 各种型号例如以下,支持sta/ap/ap+sta,双模蓝牙的应用,支持ThreadX,rt-thread, freertos, Azure RTOS, Linux, Android系统. 稳定强,功耗低,吞吐量高等优势可以应用在新能源充电桩 安防 工控 智能

    2024年01月17日
    浏览(52)
  • 32单片机基础:GPIO输出

    目录 简介: GPIO输出的八种模式 STM32的GPIO工作方式 GPIO支持4种输入模式: GPIO支持4种输出模式: 浮空输入模式 上拉输入模式 下拉输入模式 模拟输入模式: 开漏输出模式:(PMOS无效,就是开漏输出,) 开漏复用输出模式 (P-MOS和N-MOS都有效) 推挽输出模式 推挽复用输出模

    2024年02月21日
    浏览(41)
  • 32单片机基础:GPIO输入

    按键介绍: 两种方式,我们一般用下接的方式。 第一个图:注意点。当按键按下,PA0接地,被置为低电平, 但是一旦按键松手,PA0悬空,引脚电压不确定。所以无论怎么读引脚也不知道知否被按下,所以为了解决这个问题,所以必须要求PA0是上拉输入的模式,这样引脚悬空

    2024年02月22日
    浏览(37)
  • 单片机中GPIO八种工作模式详细分析

    今天给大家讲解一下 GPIO 基础,参考资料: STM32F1xx 官方资料: 《STM32中文参考手册V10》-第8章通用和复用功能IO(GPIO和AFIO) GPIO 是通用输入/输出端口的简称,是 STM32 可控制的引脚。GPIO 的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功

    2024年02月16日
    浏览(35)
  • 嵌入式STM32 单片机 GPIO 的工作原理详解

    STM32的 GPIO 介绍 GPIO 是通用输入/输出端口的简称,是 STM32 可控制的引脚。GPIO 的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 以 STM32F103ZET6 芯片为例子,该芯片共有 144 脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为

    2024年02月20日
    浏览(48)
  • STM32单片机(三)第二节:GPIO输出练习3(蜂鸣器)

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月11日
    浏览(44)
  • 使用51单片机的GPIO输出占空比可调节的PWM波

    在一些单片机或微控制器中,通用GPIO可以被配置为产生PWM信号。PWM即脉冲宽度调制,是一种用于模拟输出的技术。它可以通过改变输出信号的脉冲宽度来控制电路中的电平,从而实现对电路的控制。 PWM波( Pulse-Width Modulation ),即脉宽调制波,是一种用于控制电子电路中电

    2024年02月01日
    浏览(74)
  • K_A12_004 基于STM32等单片机采集人体红外感应(HC-SR501)模块串口与OLED0.96双显示

    单片机型号 测试条件 模块名称 代码功能 STC89C52RC 晶振11.0592M HC-SR501模块 STC89C52RC采集HC-SR501模块参数 串口与OLED0.96双显示 STM32F103C8T6 晶振8M/系统时钟72M HC-SR501模块 STM32F103C8T6采集HC-SR501模块参数 串口与OLED0.96双显示 其他资料目录 直戳跳转 HC-SR501模块 引脚说明 VCC 正极 3.3-5V供电

    2024年01月19日
    浏览(50)
  • 【51单片机系列】单片机与PC进行串行通信

    工业现场的测控系统中,常使用单片机进行监测点的数据采集,然后单片机通过串口与PC通信,把采集的数据串行传送到PC机上,再在PC机上进行数据处理。 PC机配置的都是RS-232标准串口,为D型9针插座,输入/输出为RS-232电平。D型9针插头引脚如下: 如下表为RS-232C的D型9针插头

    2024年01月17日
    浏览(43)
  • 【51单片机系列】proteus仿真单片机的串口通信

    本文参考:https://zhuanlan.zhihu.com/p/425809292。 在proteus之外使用串口软件和单片机通信。通过在proteus设计一个单片机接收PC发送的数据,并将接收的数据发送出去,利用软件【Configure Virtual Serial Port Driver】创建一对虚拟串口,利用软件【串口助手】向单片机发送数据。 proteus仿真

    2024年01月17日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包