打印
[技术问答]

求教大侠:NUC029LAN P3.0输出L为什么会复位?

[复制链接]
989|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
云龙起舞|  楼主 | 2018-3-10 18:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
上电复位后,P3.0是默认为I/O功能的,将P3.0设成输出口且输出低电平,80ms后IC会复位,但是将P3.0输出高电平就不会复位,这是为什么?P3.0脚没有外接任何元件,我的程序如下:
#include <stdio.h>
#include "NUC029xAN.h"

/*---------------------------------------------------------------------------------------------------------*/
/* Global variables                                                                                        */
/*---------------------------------------------------------------------------------------------------------*/

/*---------------------------------------------------------------------------------------------------------*/
/* Define functions prototype                                                                              */
/*---------------------------------------------------------------------------------------------------------*/
int32_t main(void);

void SYS_Init(void)
{
    //---------------------------------------------------------------------------------------------------------
    // Init System Clock                                                                                       
    //---------------------------------------------------------------------------------------------------------
    // 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);

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

    /* Update System Core Clock */
    /* User can use SystemCoreClockUpdate() to calculate PllClock, SystemCoreClock and CycylesPerUs automatically. */
    SystemCoreClockUpdate();
}

/*---------------------------------------------------------------------------------------------------------*/
/* MAIN function                                                                                           */
/*---------------------------------------------------------------------------------------------------------*/
int main(void)
{
        /* Unlock protected registers */
    SYS_UnlockReg();

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

    /* Lock protected registers */
    SYS_LockReg();

    GPIO_SetMode(P1, BIT6, GPIO_PMD_OUTPUT);
    P16 = 0;

    //GPIO_SetMode(P3, BIT0, GPIO_PMD_OUTPUT);
    P30 = 0;

        while(1);
}
沙发
云龙起舞|  楼主 | 2018-3-12 09:25 | 只看该作者
顶贴,求教

使用特权

评论回复
板凳
huangcunxiake| | 2018-3-12 11:25 | 只看该作者
这个是不是串口复用的,你先设置一下那个功能选择

使用特权

评论回复
地板
huangcunxiake| | 2018-3-12 11:29 | 只看该作者
#define SYS_MFP_P30_GPIO    0x00000000UL /*!< P3_MFP pin 0 setting for GPIO */
#define SYS_MFP_P30_RXD0    0x00000001UL /*!< P3_MFP pin 0 setting for RXD0 */
#define SYS_MFP_P30_CPN1    0x00000100UL /*!< P3_MFP pin 0 setting for CPN1 */
#define SYS_MFP_P30_ACMP1_N 0x00000100UL /*!< P3_MFP pin 0 setting for ACMP1_N */
#define SYS_MFP_P30_Msk     0x00000101UL /*!< P3_MFP pin 0 mask             */
看了,有寄存器控制这个功能选择,我觉得应该设置一下,不管默认是不是,。。

使用特权

评论回复
5
huangcunxiake| | 2018-3-12 11:33 | 只看该作者
    SYS->P3_MFP &= ~(SYS_MFP_P30_Msk);
    SYS->P3_MFP |= (SYS_MFP_P30_GPIO);

使用特权

评论回复
6
huangcunxiake| | 2018-3-12 11:33 | 只看该作者
如果不操作这个管脚,难道不会复位,如果也会,那就不是这个管脚的问题i。

使用特权

评论回复
7
Alisa000| | 2018-3-12 15:22 | 只看该作者
应用做什么产品?新唐一级代理,提供技术支持QQ1574540195 欢迎交流

使用特权

评论回复
8
gejigeji521| | 2018-3-15 11:47 | 只看该作者
如果是个普通IO应该不会出现这个情况

使用特权

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

本版积分规则

11

主题

33

帖子

0

粉丝