您好,欢迎进入 官方网站!

您现在的位置: 首页 新闻资讯>> 新闻头条>> 说说M451例程讲解之串口
新闻资讯
NEWS INFORMATION

说说M451例程讲解之串口

发布时间:2019-05-22
/**************************************************************************//** * @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"#definePLL_CLOCK 72000000voidSYS_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); }voidUART0_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','\n'};/*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("\n\nCPU @ %dHz\n", SystemCoreClock); printf("UART test\n\r");while(1); }
联系方式 0755-82591179

传真:0755-82591176

邮箱:vicky@yingtexin.net

地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08

Baidu
map