首页 > 应用 > 单片机应用
[导读]/************************************************//*函数功能:初始化UART口*//************************************************/voidUART_init(uint32_tbaudrate){uint32_tDL_value,Clear=Clear;//(用这种方式

/************************************************//*函数功能:初始化UART口*//************************************************/voidUART_init(uint32_tbaudrate){uint32_tDL_value,Clear=Clear;//(用这种方式定义变量解决编译器的Warning)LPC_SYSCON->SYSAHBCLKCTRL|=(1<<16);//使能IOCON时钟LPC_IOCON->PIO1_6&=~0x07;LPC_IOCON->PIO1_6|=0x01;//把P1.6脚设置为RXDLPC_IOCON->PIO1_7&=~0x07;LPC_IOCON->PIO1_7|=0x01;//把P1.7脚设置为TXDLPC_SYSCON->SYSAHBCLKCTRL&=~(1<<16);//禁能IOCON时钟LPC_SYSCON->UARTCLKDIV=0x1;//时钟分频值为1LPC_SYSCON->SYSAHBCLKCTRL|=(1<<12);//允许UART时钟LPC_UART->LCR=0x83;//8位传输,1个停止位,无几偶校验,允许访问除数锁存器DL_value=SystemCoreClock/16/baudrate;//计算该波特率要求的除数锁存寄存器值LPC_UART->DLM=DL_value/256;//写除数锁存器高位值LPC_UART->DLL=DL_value%256;//写除数锁存器低位值LPC_UART->LCR=0x03;//DLAB置0LPC_UART->FCR=0x07;//允许FIFO,清空RxFIFO和TxFIFOClear=LPC_UART->LSR;//读UART状态寄存器将清空残留状态}

某同学:UART的例程程序有一句语句Clear=LPC_UART->LSR;Clear是被定义了,这也用到了,但是就把LSR的值读出来也不判断,这个不明白

本文引用地址: http://www.21ic.com/app/mcu/201807/784441.htm

瑞生:这个原因,后面的注释写的很清楚呀

瑞生:Clear=Clear:用这种语句形式解决编译产生的Waring:neverused!

瑞生:你把=Clear去掉以后,再按编译按钮,就知道了

某同学:这我看了明白

某同学:Clear=LPC_UART->LSR;这条语句不是读的LSR状态信息吗?那就是说这一句可以不写

瑞生:这一句,必须写,我们用这一句的作用是:清除LSR寄存器

某同学:如果读了以后没有用,可以不写

瑞生:我们就是要“只读不用”

某同学:我知道LSR是只读的寄存器,通过Clear=LPC_UART->LSR;把LSR信息读出来了,赋给Clear,同时LSR里的值会改变是吗?

某同学:如果不变,也不判断实在不明读它有什么意义

瑞生:这个意义,我已经说过了

瑞生:这一句,必须写,我们用这一句的作用是:清除LSR寄存器

瑞生:能理解吗?

某同学:理解了,也就LSR的值改变了

瑞生:不是

瑞生:清除LSR寄存器的作用是,不要让之前的状态影响了下次的通信。

某同学:知道了,谢谢!

瑞生:好的,不客气!


换一批

延伸阅读

[单片机应用] 51单片机洗衣机控制板及C语言程序

51单片机洗衣机控制板及C语言程序

51单片机洗衣机控制板及C语言程序,该控制板单片机采用AT89C51单片机,所设计全自动洗衣机功能有:标准洗衣、经济洗衣、单独洗衣以及排水四种洗衣等四种方式,有强洗、弱洗及运行/暂停、显示及报警功能,程序利用利用......

关键字:51单片机 洗衣机控制板 C语言程序

[单片机应用] ucos在s3c2410上运行过程整体剖析之基础知识-c语言和堆栈

ucos在s3c2410上运行过程整体剖析之基础知识-c语言和堆栈

我们知道C语言是一种高级语言,所谓高级语言就是要经过翻译才能在具体平台上运行的程序。而编译程序是一种比较繁琐的程序,它要把高级语言编译和链接后,成为能够在具体平台运行的程序。这其中有很多知识是和操作系统......

关键字:ucos s3c2410 c语言 堆栈

[单片机应用] 自己用C语言写dsPIC / PIC24 serial bootloader

自己用C语言写dsPIC / PIC24 serial bootloader

  HyperBootloader_dsPIC  HyperBootloader_dsPIC是我用C语言实现的UART bootloader, 采用串口通信,适用于Microchip的dsPIC30, dsPIC33,同样适用于PIC24。......

关键字:C语言 dsPIC PIC24 serial bootloader

[单片机应用] 自己用C语言写单片机PIC18 serial bootloader

自己用C语言写单片机PIC18 serial bootloader

  HyperBootloader_PIC18_J 和 HyperBootloader_PIC18_None_J  完成PIC16 bootloader (详细情况请阅读我的上一篇随笔《自己用C语言写单片机PIC16serial bootl......

关键字:C语言 单片机 PIC18 serial bootloader

[单片机程序的完善] 单片机c51和一般的c语言有何不同之处?

单片机c51和一般的c语言有何不同之处?

c语言和c51大部分的地方都是相同的,他们的语句,结构,顺序都是很相似的,只是c51相比与c语言,多了很多变量类型和其他的东西,下面是总结c语言和c51的一些不同之处。变量类型位变量声明 bit c51中特有的一种变量声明,b......

关键字:单片机 C51 C语言

[汽车电子] 共享汽车这条路能走通吗?无人驾驶或是唯一出路

共享汽车这条路能走通吗?无人驾驶或是唯一出路

国家和各地的相应政策和扶持,无疑是对共享汽车行业的极大肯定,但一般的共享汽车企业,背后没有雄厚的资金支撑,很容易夭折。需要企业做出合理完善的产业链支撑,并积极加强在传统经营模式上的创新,寻求各个层面上的突破,力造企业营收上的多样来源,才能够......

关键字:共享汽车 无人驾驶

[模拟电路] 微型电子管6C6B简介及应用

微型电子管6C6B简介及应用

一、概述微型电子管6c6B是电子管家族中的小兄弟,又称超小型电子管或“毛毛管”,直径8mm,高33mm,重2g。由于体积小重量轻,故广泛应用于氢气球气象探空仪中携带的微波发射机,将探空仪所探测到的高空温度......

关键字:微型电子管 功率放大器

[技术专访] 21ic年度专访之Molex—传感器需求爆发推动连接器创新

21ic年度专访之Molex—传感器需求爆发推动连接器创新

中国半导体行业的发展已经从数量增长开始往质量增长上变化,您有哪些看法和建议? Molex公司全球中国营销部门销售总监Clark Chou迄今为止,中国一直严重依赖半导体芯片的进口。官方的政策是促进国内半导体行业的发展......

关键字:Molex 传感器 连接器

[消费类电子新闻] 曝屏下摄像头明年到来?刘海屏、水滴屏可终结了

曝屏下摄像头明年到来?刘海屏、水滴屏可终结了

因为有前置摄像头的存在,导致不少手机厂商想尽各种办法来提高屏占比,像苹果的刘海屏,vivo的水滴屏,oppo Find X选择弹出式摄像头,以保证更大的屏占比,这些形形色色的扩屏招术或可以结束了,因为屏下摄像头即将到来。 ......

关键字:摄像头 刘海屏 水滴屏 智能手机

我 要 评 论

网友评论

技术子站

更多

项目外包

更多

推荐博客