基本信息
源码名称:lpc1114串口发送数据示例代码完整版
源码大小:0.16M
文件格式:.zip
开发语言:C/C++
更新时间:2017-08-14
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

lpc1114串口发送数据代码

#include "lpc11xx.h"
#include "uart.h"


/************************************************/
/* 函数功能:初始化UART口                       */
/************************************************/
void UART_init(uint32_t baudrate)
{
uint32_t DL_value,Clear=Clear;   // (用这种方式定义变量解决编译器的Warning)                       

LPC_SYSCON->SYSAHBCLKCTRL |= (1<<16); // 使能IOCON时钟 
LPC_IOCON->PIO1_6 &= ~0x07;    
LPC_IOCON->PIO1_6 |= 0x01; //把P1.6脚设置为RXD
LPC_IOCON->PIO1_7 &= ~0x07;
LPC_IOCON->PIO1_7 |= 0x01; //把P1.7脚设置为TXD
LPC_SYSCON->SYSAHBCLKCTRL &= ~(1<<16); // 禁能IOCON时钟

LPC_SYSCON->UARTCLKDIV = 0x1; //时钟分频值为1
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<12);//允许UART时钟
LPC_UART->LCR = 0x83;   //8位传输,1个停止位,无几偶校验,允许访问除数锁存器
DL_value = (SystemCoreClock/LPC_SYSCON->UARTCLKDIV/16)/baudrate ;  //计算该波特率要求的除数锁存寄存器值
LPC_UART->DLM = DL_value / 256;   //写除数锁存器高位值
LPC_UART->DLL = DL_value % 256;  //写除数锁存器低位值
LPC_UART->LCR = 0x03;    //DLAB置0
LPC_UART->FCR = 0x07;    //允许FIFO,清空RxFIFO 和 TxFIFO
Clear = LPC_UART->LSR;   //读UART状态寄存器将清空残留状态
}

/************************************************/
/* 函数功能:串口接收字节数据                       */
/************************************************/
uint8_t UART_recive(void)
{
uint8_t ucRcvData;
while(!(LPC_UART->LSR & (1<<0)));//等待接收到数据
ucRcvData = LPC_UART->RBR;
return(ucRcvData); //读出数据
}

/************************************************/
/* 函数功能:串口发送字节数据                       */
/************************************************/
void UART_send_byte(uint8_t byte)
{

/*while ( !(LPC_UART->LSR & (1<<5)) );//等待发送完
LPC_UART->THR = byte;
*/
LPC_UART->THR = byte;
while((LPC_UART->LSR&0x40)==0);
}

/************************************************/
/* 函数功能:串口发送数组数据                   */
/************************************************/
void UART_send(uint8_t *Buffer, uint32_t Length)
{
while(Length != 0)
{
while ( !(LPC_UART->LSR & (1<<5)) );//等待发送完
LPC_UART->THR = *Buffer;
Buffer ;
Length--;
}
}