完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include "DrvUart.h"
#include "LPC11xx.h" #define IER_RBR 0x01 #define IER_THRE 0x02 #define IER_RLS 0x04 #define IIR_PEND 0x01 #define IIR_RLS 0x03 #define IIR_RDA 0x02 #define IIR_Cti 0x06 #define IIR_THRE 0x01 #define LSR_RDR 0x01 #define LSR_OE 0x02 #define LSR_PE 0x04 #define LSR_FE 0x08 #define LSR_BI 0x10 #define LSR_THRE 0x20 #define LSR_TEMT 0x40 #define LSR_RXFE 0x80 #define IOCONCLK_ON LPC_SYSCON->SYSAHBCLKCTRL |= (1<<16) #define RXDFUNC LPC_IOCON->PIO1_6 &= ~0x07;LPC_IOCON->PIO1_6 |= 0x01 #define TXDFUNC LPC_IOCON->PIO1_7 &= ~0x07;LPC_IOCON->PIO1_7 |= 0x01 #define UARTCLKEN LPC_SYSCON->SYSAHBCLKCTRL |= (1<<12) #define PCLKDIV 0x01 /******************************************************************************* Function: UART_IRQHandler Description: ´®¿ÚÖжϷþÎñº¯Êý Input: None Output: None Return: None Others: None ********************************************************************************/ void UART_IRQHandler(void) { unsigned char lIIRValue; lIIRValue = LPC_UART->IIR; lIIRValue >>= 1; lIIRValue &= 0x07; /*È¡³öÖжϱêÖ¾*/ if(lIIRValue == IIR_RDA) /*½ÓÊÕÊý¾Ý¿ÉÓÃ*/ { gNoSignalTime = 0; } lIIRValue = LPC_UART->RBR; lIIRValue = LPC_UART->LSR; return; } /******************************************************************************* Function: UartInit Description: ´®¿Ú³õʼ»¯ Input: BaudRate--²¨ÌØÂÊ Output: None Return: None Others: None ********************************************************************************/ void UartInit(unsigned int BaudRate) { unsigned long lFdiv,lRegVal=lRegVal; NVIC_DisableIRQ(UART_IRQn); RXDFUNC; /*ÅäÖÃÒý½ÅΪRXD¹¦ÄÜ*/ TXDFUNC; /*ÅäÖÃÒý½ÅΪTXD¹¦ÄÜ*/ UARTCLKEN; /*ʹÄÜUARTʱÖÓ*/ LPC_SYSCON->UARTCLKDIV = PCLKDIV; /*UART PCLK ·ÖƵ*/ LPC_UART->LCR = 0x83; /*8λÊý¾Ý,1¸öֹͣλ ÎÞÆæżУÑé ÔÊÐí·ÃÎʳýÊýËø´æ*/ lFdiv = ((gSystemFrequency/PCLKDIV)/16)/BaudRate; LPC_UART->DLM = lFdiv/256; LPC_UART->DLL = lFdiv%256; LPC_UART->LCR &= ~0x80; /*½ûÖ¹·ÃÎʳýÊýËø´æ*/ LPC_UART->FCR = 0x0f; /*ʹÄÜFIFO£¬´¥·¢Öжϵã0(½ÓÊÕ1¸ö×Ö·û)*/ while((LPC_UART->LSR&(LSR_THRE|LSR_TEMT)) != (LSR_THRE|LSR_TEMT)); while(LPC_UART->LSR & LSR_RDR) { lRegVal = LPC_UART->RBR; } NVIC_EnableIRQ(UART_IRQn); NVIC_SetPriority(UART_IRQn,0); LPC_UART->IER = (IER_RBR|IER_RLS); DEBUGMESG("Uart0 port init success!rn"); return; } /******************************************************************************* Function: UartPutch Description: ´®¿Ú·¢ËÍÒ»¸ö×Ö½ÚÊý¾Ý Input: uData ÐèÒª·¢Ë͵ÄÊý¾Ý Output: None Return: None Others: None ********************************************************************************/ void UartPutch(const unsigned char uData) { LPC_UART->THR = uData; while((LPC_UART->LSR & LSR_TEMT) == 0); } /******************************************************************************* Function: Uart485CtrlInit Description: RS485¿ØÖƳõʼ»¯ Input: None Output: None Return: None Others: None ********************************************************************************/ void Uart485CtrlInit(void) { LPC_IOCON->PIO1_5 &= ~(0x07); LPC_GPIO1->DIR |= (1<<5); LPC_GPIO1->DATA &= ~(1<<5); } /******************************************************************************* Function: Uart485SetRec Description: RS485ÉèÖÃΪ½ÓÊÕ״̬ Input: None Output: None Return: None Others: None ********************************************************************************/ void Uart485SetRec(void) { LPC_GPIO1->DATA &= ~(1<<5); } /******************************************************************************* Function: Uart485SetSend Description: RS485ÉèÖÃΪ·¢ËÍ״̬ Input: None Output: None Return: None Others: None ********************************************************************************/ void Uart485SetSend(void) { LPC_GPIO1->DATA |= (1<<5); } |
|
|
|
只有小组成员才能发言,加入小组>>
1912个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36369 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4405 浏览 0 评论
6063 浏览 1 评论
6772 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4221 浏览 0 评论
625浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
621浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
615浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
698浏览 2评论
802浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 11:20 , Processed in 1.051098 second(s), Total 72, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号