华大单片机注意事项--特殊端口作为普通IO口使用

  来源:https://blog.csdn.net/lvk/category_8448763.html

  GPIO是通用输入输出模块,MCU可将一个 IO设为模拟模式,作为 ADC输入;设为数字输入输出,或是外设端口,供特定外设使用。使用端口功能前,需要先把 GPIO模块时钟控制功能打开。
        本系列 GPIO的可复用的特殊端口有 RESET、外部晶振引脚、SWD、UART 编程接口等,用户在不同的应用当中需要根据这些端口的特性及应用特点选择不同的复用方式。

RESET引脚复用为输入端口
  当外部复位引脚检测到低电平时会产生一个系统复位。该复位引脚已内置上拉电阻,并集成了一个毛刺过滤电路。毛刺过滤电路会过滤小于 20uS(典型值)的毛刺信号,因此,加到复位引脚上的低电平信号必须大于 20uS,才能确保芯片可靠复位。RESET 引脚可以复用为输入端口 P0.0。如果要使用 RESET 作为输入端口 P0.0,参考流程如下:
1.  GPIO模块时钟控制功能打开:PERI_CLKEN.GPIO置为 1
2.向系统控制寄存器 SYSCTRL2依次写入 0x5A5A、0xA5A5,使能寄存器改写
3.  系统控制寄存器的 RESET_USE_IO时钟控制位:SYSCTRL1. RES_UIO使能
注意:
- 在复用 RESET 引脚作为输入端口的时候,仍必须确保外围电路的设计,在上电时要保证该引脚不能为低电平(Low-Level),否则程序无法运行。
- 该端口已经内置上拉电阻,所以该引脚即使作为输入端口,也只能是作为“输入且具有上拉功能的输入端口”。

外部晶振端口复用为 I/O端口
        当不使用外部高速晶振或低速晶振时,以下端口可以复用为 I/O功能。
X32MOUT  →    P0.1
X32MIN   →    P0.2
X32KOUT   →    P1.5
X32KIN   →    P1.4
复用 I/O功能流程如下:
1.  GPIO模块时钟控制功能打开:PERI_CLKEN.GPIO置为 1。
2.  P0.1和 P0.2、P1.5和 P1.4需要配置为数字端口:P0ADS和 P1ADS相关位配置为 0。
3.  功能配置寄存器选为 GPIO功能:P01_SEL,P02_SEL,P15_SEL,P14_SEL设为 0。
4.  选择输入输出方向:设置 P00DIR和 P1DIR的相关位(0:输出,1:输入)

SWD调试编程端口复用为 I/O功能
         SWD端口作为该系列 MCU的调试和下载端口,用户可根据实际需求选择是否预留该端口作为调试或量产编程使用。如果不需要使用 SWD端口作为调试编程,SWCLK 与 SWDIO引脚可以复用为 I/O引脚。
复用 I/O功能参考流程如下:
1.  GPIO模块时钟控制功能打开:PERI_CLKEN.GPIO置为 1
2.向系统控制寄存器 SYSCTRL2依次写入 0x5A5A、0xA5A5,使能寄存器改写
3.  系统控制寄存器的 SWD_USE_IO时钟控制位(SYSCTRL1. SWD_UIO)使能
4.  P27_SEL.SEL与 P31_SEL.SEL设置为 0
5.  P2DIR.P27与 P3DIR.P31 设置为输入或输出
注意:
- 从上电到 SWD被复用配置为 I/O端口生效为止,P27和 P31引脚的电平默认为高电平,因此在外围电路的设计中,应加以注意和规避。
- 当把 SWD端口复用为 I/O功能时,通过 SWD的在线调试与下载功能就会失效。

- 在用户调试时,可以通过串口擦除或下载其他没有复用 SWD的程序恢复 SWD在线调试和下载功能,或者在应用程序中复用 SWD端口之前添加几秒的延时。

UART离线编程端口复用为 I/O端口
        该系列 MCU使用 UART端口 P3.5(TX)、P3.6(RX)作为离线编程功能,用户在实际应用中可根据需求选择是否预留该端口作为后续量产下载的烧录端口。
        为配合离线编程器进入下载模式,MCU上电时 P3.5(TX)端口会输出约 10ms的高电平脉冲作为握手信号。应用中需要使用该端口(P3.5)作为输出功能时,硬件电路应考虑规避该脉冲对整个应用的影响,或尽量避免使用该端口作为输出功能。

 

posted @ 2021-06-12 20:32  xiaokangkp  阅读(1238)  评论(0编辑  收藏  举报