LPC1768串口配置.docx

上传人:牧羊曲112 文档编号:3160891 上传时间:2023-03-11 格式:DOCX 页数:6 大小:37.26KB
返回 下载 相关 举报
LPC1768串口配置.docx_第1页
第1页 / 共6页
LPC1768串口配置.docx_第2页
第2页 / 共6页
LPC1768串口配置.docx_第3页
第3页 / 共6页
LPC1768串口配置.docx_第4页
第4页 / 共6页
LPC1768串口配置.docx_第5页
第5页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《LPC1768串口配置.docx》由会员分享,可在线阅读,更多相关《LPC1768串口配置.docx(6页珍藏版)》请在三一办公上搜索。

1、LPC1768串口配置/* 函数名称: UART1_Cfg* 功能描述: 配置UART1* 输 入: 无* 输 出: 无*/void UART1_Cfg(void)LPC_SC->PCONP |= (1<<4);/ 打开UART1功率、时钟控制位/LPC_PINCON->PINSEL0 |= (1 << 30);/ 设置引脚 P0.15 为 TXD1/LPC_PINCON->PINSEL1 |= (1 << 0);/ 设置引脚 P0.16 为 RXD1LPC_PINCON->PINSEL4 |= (2 << 0);/ 设置引脚 P2.0 为 TX

2、D1LPC_PINCON->PINSEL4 |= (2 << 2);/ 设置引脚 P2.1 为 RXD1LPC_UART1->LCR = 0x83;/ 使能访问除数锁存器 ,设定波特率/ 设置串口数据格式,8位字符长度,1个停止位,无校验if(UART1_BPS = 2400)LPC_UART1->DLM = (FPCLK/16)/UART1_BPS) / 256; / 除数高八位,没有小数情况LPC_UART1->DLL = (FPCLK/16)/UART1_BPS) % 256;/ 除数第八位LPC_UART1->FDR = 0; / 小数分频寄存器关闭else

3、 if(UART1_BPS = 9600)LPC_UART1->DLM = 0; / 有小数情况,高字节LPC_UART1->DLL = 108;/ 低字节LPC_UART1->FDR = (1UL<<0) | (2UL<<4); / 小数分频寄存器else if(UART1_BPS = 38400)LPC_UART1->DLM = 0; / 有小数情况,高字节LPC_UART1->DLL = 26;/ 低字节LPC_UART1->FDR = (1UL<<0) | (2UL<<4); / 小数分频寄存器else if(UART1_BPS

4、= 115200)LPC_UART1->DLM = 0; / 有小数情况,高字节LPC_UART1->DLL = 9;/ 低字节LPC_UART1->FDR = (4UL<<0) | (9UL<<4); / 小数分频寄存器LPC_UART1->LCR = 0x03;/ 禁止访问除数锁存器,锁定波特率 LPC_UART1->FCR = 0x07; / 控制UARTn RX和TX FIFO的操作。接收数据一个字节触发中断NVIC_EnableIRQ(UART1_IRQn);/ 设置中断入口NVIC_SetPriority(UART1_IRQn, NVIC_PRI

5、ORTY_UART1); / 设置中断优先级LPC_UART1->IER = (1UL << 0)|(1UL << 1);/ 使能接收和发送中断 bit0 接收中断 bit1 发送中断/* 函数名称: UART1_SentByte* 功能描述: 串口发送单字节数据* 输 入: 无* 输 出: 无*/void UART1_SentByte(uint8_t dat)LPC_UART1->IER &= (1UL << 1);/ 关闭发送中断, bit0 接收中断;bit1 发送中断LPC_UART1->THR = dat;while ( !(LPC_UART1-&

6、gtLSR & 0x20) );/ 等待发送LPC_UART1->IER |= (1UL << 1);/ 使能发送中断/* 函数名称: UART1_IRQHandler* 功能描述: 串口1中断处理函数* 输 入: 无* 输 出: 无*/void UART1_IRQHandler(void)uint8 iir,temp;iir = LPC_UART1->IIR;switch (iir & 0x0F)/ 检查IIR的中断标示 bit1bit3case 0x04:/ 接收数据可用case 0x0C:/ 字符超时指示temp = LPC_UART1->LSR;while(temp & 0x01)/ 接收到数据if(temp & 0x80)/ 接收到的数据包含错误temp = LPC_UART1->RBR;/ 丢弃接收到的错误字节else/ 接收FIFO有可用数据U1Rv_Buf = LPC_UART1->RBR;/ 读取数据temp = LPC_UART1->LSR;break;case 0x02:/ 发送中断break;default:break;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号