zoukankan      html  css  js  c++  java
  • 说说M451例程讲解之串口

    /**************************************************************************//**
     * @file     main.c
     * @version  V3.00
     * $Revision: 3 $
     * $Date: 15/09/02 10:03a $
     * @brief    Demonstrate how to set GPIO pin mode and use pin data input/output control.
     * @note
     * Copyright (C) 2013~2015 Nuvoton Technology Corp. All rights reserved.
     *
     ******************************************************************************/
    #include "stdio.h"
    #include "M451Series.h"
    
    
    #define PLL_CLOCK       72000000
    
    
    void SYS_Init(void)
    {
        /*---------------------------------------------------------------------------------------------------------*/
        /* Init System Clock                                                                                       */
        /*---------------------------------------------------------------------------------------------------------*/
    
        /* Enable HIRC clock (Internal RC 22.1184MHz) */
        CLK_EnableXtalRC(CLK_PWRCTL_HIRCEN_Msk);
    
        /* Wait for HIRC clock ready */
        CLK_WaitClockReady(CLK_STATUS_HIRCSTB_Msk);
    
        /* Select HCLK clock source as HIRC and and HCLK clock divider as 1 */
        CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_HIRC, CLK_CLKDIV0_HCLK(1));
    
        /* Enable HXT clock (external XTAL 12MHz) */
        CLK_EnableXtalRC(CLK_PWRCTL_HXTEN_Msk);
    
        /* Wait for HXT clock ready */
        CLK_WaitClockReady(CLK_STATUS_HXTSTB_Msk);
    
        /* Set core clock as PLL_CLOCK from PLL */
        CLK_SetCoreClock(PLL_CLOCK);
    
        /* Enable UART module clock */
        CLK_EnableModuleClock(UART0_MODULE);
    
        /* Select UART module clock source as HXT and UART module clock divider as 1 */
        CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UARTSEL_HIRC, CLK_CLKDIV0_UART(1));
    
        /*---------------------------------------------------------------------------------------------------------*/
        /* Init I/O Multi-function                                                                                 */
        /*---------------------------------------------------------------------------------------------------------*/
    
        /* Set PD multi-function pins for UART0 RXD(PD.6) and TXD(PD.1) */
        SYS->GPD_MFPL &= ~(SYS_GPD_MFPL_PD6MFP_Msk | SYS_GPD_MFPL_PD1MFP_Msk);
        SYS->GPD_MFPL |= (SYS_GPD_MFPL_PD6MFP_UART0_RXD | SYS_GPD_MFPL_PD1MFP_UART0_TXD);
    
    }
    
    void UART0_Init()
    {
        /*---------------------------------------------------------------------------------------------------------*/
        /* Init UART                                                                                               */
        /*---------------------------------------------------------------------------------------------------------*/
        /* Reset UART module */
        SYS_ResetModule(UART0_RST);
    
        /* Configure UART0 and set UART0 baud rate */
        UART_Open(UART0, 115200);
    }
    
    /*---------------------------------------------------------------------------------------------------------*/
    /*  Main Function                                                                                          */
    /*---------------------------------------------------------------------------------------------------------*/
    int32_t main(void)
    {
    
          uint8_t a[]={'a','b','c','
    '};
         
        /* 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();
            
          UART_Write(UART0,a,5);
            
            UART_READ(UART0);
        
        printf("
    
    CPU @ %dHz
    ", SystemCoreClock);
    
        printf("UART test
    
    ");
    
        while(1);
    
    }
  • 相关阅读:
    求助
    第五次作业
    第四次作业
    第三次作业
    第二次作业(四则运算)
    关于软件工程相关疑问
    小组成员名单()
    第四次作业
    第二次作业
    第一次作业
  • 原文地址:https://www.cnblogs.com/zhugeanran/p/8575350.html
Copyright © 2011-2022 走看看