⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 LPC1114_例程和教程
💻 C
字号:
/****************************************************
*名  称:	UART测试文件							*
*功  能:   UART串口发送							*
*备  注:	2011.1.9								*
*贞明电子: http://shop58972409.taobao.com			*
*****************************************************/
/**************** 头文件调用&&宏定义 ****************/
#include "LPC11xx.h"
#include "UART.h"
#include "stdio.h"
/******************* 全局变量定义 *******************/
extern volatile uint32_t UARTCount;
extern volatile uint8_t UARTBuffer[BUFSIZE];		
/********************** 函数声明 ********************/
__inline void delay_ms(uint32_t a);	
void AutoBaud(void);				
/********************** 主函数 **********************/
int main(void)
{
 	SystemInit();	//系统初始化,包括使能时钟
	UARTInit();		//初始化自动串口
	AutoBaud();	 	//自动识别波特率
	while(1)
	{	 
		UARTSend("贞明电子:http://shop58972409.taobao.com\r\n",42);
		delay_ms(1000);
	}
}												   
/********************** 函数定义 ********************/
/****************************************************
*名  称:	延时函数    							*
*参  数:   延时时间								*
*备  注:	内联函数    							*
*****************************************************/
__inline void delay_ms(uint32_t a)    //1ms延时函数
{                           
	uint32_t i;
	while( --a != 0)
	{
   		for(i = 0; i<5500; i++);
	}             
}
/****************************************************
*名  称:	AutoBaud    							*
*参  数:   延时时间								*
*备  注:	串口波特率自动识别 	     				*
*****************************************************/
void AutoBaud(void)
{
	char str[64];
	uint32_t baud;
	uint32_t dlm,  dll;	
	/* 启动自动波特率测量 */
	LPC_UART->ACR  = 0x03;							// 允许自动波特率
	while ((LPC_UART->ACR & 0x01) != 0x0);			// 等待自动波特率测量完成
	/* 测量结束 */
	LPC_UART->ACR 		 |= 0x01 << 8;				// 清除自动波特率中断标志
	LPC_UART->IER 		 &= ~(0x01 << 8);			// 禁止自动波特率中断	
    NVIC_DisableIRQ(UART_IRQn);	
	/* 读取除数锁存器和小数波特率发生器的值 */
	LPC_UART->LCR = 0x83;							// DLAB=1
	dlm   = LPC_UART->DLM;
	dll   = LPC_UART->DLL;
	LPC_UART->LCR = 0x03;	
	/* 计算并发送当前波特率 */
	baud  = ((SystemFrequency/LPC_SYSCON->SYSAHBCLKDIV) / (16 * (256 * dlm + dll)));
	sprintf(str,  "LPC1114  ZhengMing Hello! Baud is %4d bps \n",  baud);
	UARTSend(str,45);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -