打印
[技术问答]

编辑编辑

[复制链接]
577|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
拆电表|  楼主 | 2018-12-26 17:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 拆电表 于 2019-2-26 16:22 编辑

编辑编辑
沙发
拆电表|  楼主 | 2018-12-26 17:39 | 只看该作者
知道了

使用特权

评论回复
板凳
拆电表|  楼主 | 2018-12-26 17:40 | 只看该作者
知道了。。。。。。。。。。。。。。

使用特权

评论回复
地板
dongnanxibei| | 2018-12-26 19:54 | 只看该作者
是输出模式吧?
先配置模式,输出,然后输出高电平。

使用特权

评论回复
5
dongnanxibei| | 2018-12-26 20:03 | 只看该作者
2 特性
 四种 I/O 模式:
 准双向模式
 推挽输出
 开漏输出
 高阻态输入
 可选的TTL/Schmitt 触发输入
 I/O可以配置为边沿/电平触发的中断源
 支持high driver 和 high sink的 IO 模式
5.7.3 功能描述
输入模式说明
5.7.3.1
设置 GPIOx_PMD (PMDn[1:0]) 为 00b ,GPIOx port [n] 为输入模式,I/O引脚为三态(高阻),没
有输出驱动能力。GPIOx_PIN的值反映相应端口的状态。
输出模式说明
5.7.3.2
设置 GPIOx_PMD (PMDn[1:0]) 为 01b,GPIOx port [n] 为输出模式,I/O支持数字输出功能,有
source/sink电流能力。GPIOx_DOUT 相应位bit[n]的值被送到相应引脚上。

使用特权

评论回复
6
dongnanxibei| | 2018-12-26 20:03 | 只看该作者
/**************************************************************************//**
* [url=home.php?mod=space&uid=288409]@file[/url]     main.c
* [url=home.php?mod=space&uid=895143]@version[/url]  V3.00
* $Revision: 8 $
* $Date: 15/07/02 11:18a $
* [url=home.php?mod=space&uid=247401]@brief[/url]    Demonstrate how to set GPIO pin mode and use pin data input/output control.
* @note
* Copyright (C) 2014~2015 Nuvoton Technology Corp. All rights reserved.
******************************************************************************/
#include <stdio.h>
#include "NUC123.h"


#define HCLK_CLOCK           72000000


void SYS_Init(void)
{
    /*---------------------------------------------------------------------------------------------------------*/
    /* Init System Clock                                                                                       */
    /*---------------------------------------------------------------------------------------------------------*/

    /* Enable XT1_OUT(PF0) and XT1_IN(PF1) */
    SYS->GPF_MFP |= SYS_GPF_MFP_PF0_XT1_OUT | SYS_GPF_MFP_PF1_XT1_IN;

    /* Enable Internal RC 22.1184MHz clock */
    CLK_EnableXtalRC(CLK_PWRCON_OSC22M_EN_Msk);

    /* Waiting for Internal RC clock ready */
    CLK_WaitClockReady(CLK_CLKSTATUS_OSC22M_STB_Msk);

    /* Switch HCLK clock source to Internal RC and HCLK source divide 1 */
    CLK_SetHCLK(CLK_CLKSEL0_HCLK_S_HIRC, CLK_CLKDIV_HCLK(1));

    /* Enable external XTAL 12MHz clock */
    CLK_EnableXtalRC(CLK_PWRCON_XTL12M_EN_Msk);

    /* Waiting for external XTAL clock ready */
    CLK_WaitClockReady(CLK_CLKSTATUS_XTL12M_STB_Msk);

    /* Set core clock as HCLK_CLOCK */
    CLK_SetCoreClock(HCLK_CLOCK);

    /* Enable UART module clock */
    CLK_EnableModuleClock(UART0_MODULE);

    /* Select UART module clock source */
    CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UART_S_HXT, CLK_CLKDIV_UART(1));

    /*---------------------------------------------------------------------------------------------------------*/
    /* Init I/O Multi-function                                                                                 */
    /*---------------------------------------------------------------------------------------------------------*/

    /* Set GPB multi-function pins for UART0 RXD(PB.0) and TXD(PB.1) */
    SYS->GPB_MFP &= ~(SYS_GPB_MFP_PB0_Msk | SYS_GPB_MFP_PB1_Msk);
    SYS->GPB_MFP |= (SYS_GPB_MFP_PB0_UART0_RXD | SYS_GPB_MFP_PB1_UART0_TXD);

}

void UART0_Init()
{
    /*---------------------------------------------------------------------------------------------------------*/
    /* Init UART                                                                                               */
    /*---------------------------------------------------------------------------------------------------------*/
    /* Reset UART0 module */
    SYS_ResetModule(UART0_RST);

    /* Configure UART0 and set UART0 Baudrate */
    UART_Open(UART0, 115200);
}

/*---------------------------------------------------------------------------------------------------------*/
/* MAIN function                                                                                           */
/*---------------------------------------------------------------------------------------------------------*/
int main(void)
{
    int32_t i32Err;

    /* Unlock protected registers */
    SYS_UnlockReg();

    /* Init System, peripheral clock and multi-function I/O */
    SYS_Init();

    /* Lock protected registers */
    SYS_LockReg();

    /* Init UART0 for printf */
    UART0_Init();

    printf("\n\nCPU [url=home.php?mod=space&uid=72445]@[/url] %d Hz\n", SystemCoreClock);
    printf("+-------------------------------------------------+\n");
    printf("|    PB.4(Output) and PC.9(Input) Sample Code     |\n");
    printf("+-------------------------------------------------+\n\n");

    /* Configure PB.4 as Output mode and PC.9 as Input mode */
    GPIO_SetMode(PB, BIT4, GPIO_PMD_OUTPUT);
    GPIO_SetMode(PC, BIT9, GPIO_PMD_INPUT);

    i32Err = 0;
    printf("GPIO PB.4(output mode) connect to PC.9(input mode) ......");

    /* Use Pin Data Input/Output Control to pull specified I/O or get I/O pin status */
    /* Pull PB.4 to Low and check PC.9 status */
    PB4 = 0;
    if(PC9 != 0)
    {
        i32Err = 1;
    }

    /* Pull PB.4 to High and check PC.9 status */
    PB4 = 1;
    if(PC9 != 1)
    {
        i32Err = 1;
    }

    if(i32Err)
    {
        printf("  [FAIL].\n");
    }
    else
    {
        printf("  [OK].\n");
    }

    /* Configure PB.4 and PC.9 to default Quasi-bidirectional mode */
    GPIO_SetMode(PB, BIT4, GPIO_PMD_QUASI);
    GPIO_SetMode(PC, BIT9, GPIO_PMD_QUASI);

    while(1);
}

/*** (C) COPYRIGHT 2014~2015 Nuvoton Technology Corp. ***/

使用特权

评论回复
7
zhuomuniao110| | 2018-12-26 23:32 | 只看该作者
跟其他新唐的M0内核是一样的GPIO

使用特权

评论回复
8
wanduzi| | 2018-12-30 18:35 | 只看该作者
看手册,IO的几种模式。例子里有的。最常用的是准双向。

使用特权

评论回复
9
八层楼| | 2019-1-8 10:30 | 只看该作者
呵呵呵 问题很简单啊

使用特权

评论回复
10
guanjiaer| | 2019-1-8 11:21 | 只看该作者
Pout = 1就好啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

7

帖子

0

粉丝