首页 > 其他分享 >关于GPIO合封引脚以及晶振引脚使用注意事项

关于GPIO合封引脚以及晶振引脚使用注意事项

时间:2024-07-03 15:53:50浏览次数:17  
标签:Pin 引脚 晶振 InitStructure Mode GPIO Speed

CH32系列某些小封装芯片可能会存在合封引脚,如下图。以下图8脚为例,为PD4、PD5、PD1的合封引脚,其中PD1引脚还作为SWIO下载引脚。若要使用PD4引脚作为普通IO输出高低电平,注意在进行程序配置时需要注意:
(1)PD4引脚按照GPIO输出配置;
(2)合封引脚PD5和PD1要配置为浮空输入模式;
(3)PD1同时作为SWIO下载引脚,要注意关闭SDI下载功能,要注意开启复用时钟,即AFIO时钟。

PD4引脚作为普通IO使用配置代码如下:

/********************************** (C) COPYRIGHT *******************************
 * File Name          : main.c
 * Author             : WCH
 * Version            : V1.0.0
 * Date               : 2023/12/25
 * Description        : Main program body.
 *********************************************************************************
 * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
 * Attention: This software (modified or not) and binary are used for 
 * microcontroller manufactured by Nanjing Qinheng Microelectronics.
 *******************************************************************************/

/*
 *@Note
 *Multiprocessor communication mode routine:
 *Master:USART1_Tx(PD5)\USART1_Rx(PD6).
 *This routine demonstrates that USART1 receives the data sent by CH341 and inverts
 *it and sends it (baud rate 115200).
 *
 *Hardware connection:PD5 -- Rx
 *                     PD6 -- Tx
 *
 */

#include "debug.h"


/* Global define */


/* Global Variable */

/*********************************************************************
 * @fn      USARTx_CFG
 *
 * @brief   Initializes the USART2 & USART3 peripheral.
 *
 * @return  none
 */
void GPIO_CFG(void)
{
    GPIO_InitTypeDef  GPIO_InitStructure = {0};

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOD , ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO , ENABLE);
    GPIO_PinRemapConfig(GPIO_Remap_SDI_Disable, ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_30MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOD, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_30MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOD, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_30MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_30MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOD, &GPIO_InitStructure);
}

/*********************************************************************
 * @fn      main
 *
 * @brief   Main program.
 *
 * @return  none
 */
int main(void)
{
    u8 i=0,j=0;

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
    SystemCoreClockUpdate();
    Delay_Init();
#if (SDI_PRINT == SDI_PR_OPEN)
    SDI_Printf_Enable();
#else
//    USART_Printf_Init(115200);
#endif
//    printf("SystemClk:%d\r\n",SystemCoreClock);
//    printf( "ChipID:%08x\r\n", DBGMCU_GetCHIPID() );

    GPIO_CFG();

    while(1)
    {
        Delay_Ms(50); //延时50ms
        GPIO_WriteBit(GPIOA, GPIO_Pin_2, (i==0) ? (i=Bit_SET):(i=Bit_RESET)); //设置PA2引脚状态为低电平
        Delay_Ms(50); //延时50ms
        GPIO_WriteBit(GPIOD, GPIO_Pin_4, (j==0) ? (j=Bit_SET):(j=Bit_RESET)); //设置PD4引脚状态为低电平

    }
}

当使用晶振引脚作为普通GPIO使用时,注意系统主频要切换使用内部晶振进行配置。

 

标签:Pin,引脚,晶振,InitStructure,Mode,GPIO,Speed
From: https://www.cnblogs.com/liaigu/p/18281875

相关文章

  • 物联网基础——芯片引脚名称及作用介绍
    一、概述定义:芯片引脚用于和外部电路实现连接。解释:芯片只有通过引脚和外部电路连接后才能工作,如:电源等二、相关概念和符号 1.电源引脚VCC:代表电源电压输入端。通常连接外部电源的正极。GND:代表接地引脚。连接外部电源的负极。2......
  • GPIO的工作模式
    输入模式:输入浮空、输入上拉、输入下拉、模拟输入输出模式:开漏输出、开漏复用功能、推挽式输出、推挽式输出复用功能输入浮空:输入上拉:输入下拉:开漏输出:开漏复用功能:推挽式输出:推挽式输出复用功能:......
  • 杰里AW31N GPIO配置
    (配置GPIO详细具体可以看官网的手册,我就是快速列举几个能用的供参考,可能不全但是测过能用)1.配置引脚状态 可以用intgpio_init(enumgpio_portport,conststructgpio_config*config);intgpio_set_mode(enumgpio_portport,u32pin,enumgpio_modemode);举例str......
  • STM32入门HAL库-GPIO点灯
    目录1.目标2.背景知识3.过程1.目标通过HAL库操作GPIO口,使灯闪烁2.背景知识GPIO即通用输入输出查阅手册,可以了解到STM32中GPIO支持功能这里是点灯,点灯这里用到了GPIO的输出功能3.过程引脚配置界面,选择对应引脚输出功能这里是PB7主函数中编写代码HAL......
  • 【MT9669】GPIO IRQ功能在驱动中使用说明
    在MT9669的Linux Kernel中,驱动要如何实现中断操作呢?下面是对于非PM GPIO口实现IRQ的相应操作说明:1.在MT9669中对于GPIOIRQ的对应关系说明如下: 在bootable/bootloader/mboot-mtk/mboot/sboot/inc/M7642/board/BD_MT167B_10AT_MT5888_M7642.h中有如下内容:#definePADS_EX......
  • 泰山派学习12--GPIO_LED字符设备驱动
    一、GPIO寄存器1、对GPIO进行控制有以下步骤①:是能GPIO的时钟(默认开启,不用配置);②:设置引脚复用为GPIO(复位默认配置GPIO,不用配置);③:设置引脚属性(上下拉、速率、驱动能力,默认不用配置);④:控制GPIO引脚为输出,并且输出高低电平。2、GPIO功能引脚及寄存器rk3566有5个gpio控制器......
  • GPIO介绍+点灯(寄存器+HAL库)
    1.GPIO概述GPIO(General-purposeinput/output):通用型输入输出。简单理解就是我们可以控制输入输出的STM32引脚,统称为GPIO。GPIO存在的意义就是用程序控制或读取他们的输出或输入。1.1.GPIO总体说明STM32有多组GPIO,比如我们使用的芯片:STM32F103ZET6共有7组GPIO端口,他们......
  • STM32学习记录(二)————基本GPIO控制
    文章目录前言1.GPIO基础知识2.IO八种工作模式3固件库实现LED点灯前言一个学习STM32的小白有问题评论区或私信指出~1.GPIO基础知识GPIO(General-Purposeinput/output,通用输入/输出接口)用于感知外部信号(输入模式)和控制外部设备(输出模式)简单模块:LED,按键,蜂......
  • 【STM32F1例程2】GPIO外部中断输入
    1.实验说明无需连外部杜邦线,下载程序,全速运行,按右边按键看到LEDD1(PB4引脚驱动)亮暗能变化一次2.主要代码先上main.c#include"delay.h"#include"sys.h"//外部中断0配置,PA0脚产生外部中断是外部中断0voidEXTI0_Config(void){ EXTI_InitTypeDefEXTI_InitStructur......
  • INA128UA/2K5精密仪表放大器芯片中文资料PDF数据手册引脚图产品手册产品参数
    INA128的说明INA128和INA129(INA12x)均为具备出色精度的低功耗通用仪表放大器。这些放大器采用多功能三级运算放大器设计,尺寸小巧,适用于多种应用。即使在高增益(200kHz、G=100)情况下,电流反馈输入电路也可提供宽带宽。可通过单个外部电阻器在1到10,000范围内设置任......