UART配置的相关寄存器如下(按s3c2440手册中的顺序列出):

1.  ULCONn寄存器:线性控制寄存器

功能:设置奇偶校验,停止位, 数据位(5-8位)

注意:一般设置为无校验,一个停止位,数据位为8位,也就是常说的“8N1”,此时寄存器值为0x3。(bit[6]=0为正常模式,否则为红外模式);

2.  UCONn寄存器:通道n控制器

功能:选择UART时钟源、设置UART中断方式

注意:可选择PCLK、UEXTCLK或FCLK/n。bit[5]=1为回送模式,用于测试;bit[3:2]和bit[1:0]分别控制传输和接收模式,初学者常设置为中断请求或查询模式,bit[3:2]=bit[1:0]=01。

3.  UFCONn寄存器:FIFO控制寄存器

功能:用于设置是否使用FIFO,设置各FIFO的触发阙值,即发送FIFO中有多少个数据时产生中断、接收FIFO中有多少个数据时产生中断。并可以通过设置UFCONn寄存器来复位各个FIFO。读取UFSTATn寄存器可以知道各个FIFO是否已经满,其中有多少个数据。

注意:bit[0]=1时,FIFO使能,否则禁止。初学者可不使用FIFO

4.  UMCONn寄存器:UART MODEM控制寄存器

注意:bit[4]=0,AFC无效

5.UBRDIVn寄存器:波特率除数寄存器

功能:设置波特率除数

注意:UBRDIVn=(int)(UART时钟/(波特率*16))-1;

UART时钟:PCLK,FCLK/n或者UEXTCLK,例如,如果波特率为115200bps并且UART时钟为40MHz,则UBRDIVn为:

UBRDIVn=(int)(40000000/(115200*16))-1=(int)(21.7)-1(取最接近的整数)=22-1=21。

5.  UTRSTATn寄存器:接收/发送状态寄存器

功能:显示接收/发送缓存寄存器状态

注意:在非FIFO模式时,bit[0]=1表明接收到数据;bit[1]=1表明发送缓存寄存器为空。在FIFO模式时,UFSTAT寄存器的相关位,具体见手册。

6.  UERSTATn寄存器:错误状态寄存器

功能:表示各种错误是否发生

注意:初学者可以不关注其状态,待深入学习时,再查相关资料

7.  UFSTATn寄存器:FIFO状态寄存器

功能:表明FIFO的相关状态

注意:bit[14]=1,表明发送FIFO已满,暂时不能再发送数据。Bit[6]=0,表明接收FIFO中有数据(个人理解,不过不太严谨)。

8.  UMSTATn寄存器:UART MODEM 状态寄存器

注意:初学者可以不管

9.  UTXHn寄存器:发送缓存寄存器

功能:UART即会将它保存到缓冲区中,并自动发送出去

注意:bit[7:0]=发送数据。

10.            URXHn寄存器:接收缓存寄存器

功能:当UART接收到数据时,CPU读取这个寄存器,即可获得数据。

注意:bit[7:0]=接收数据;

注:URXHn与UTXHn有大、小端之分,定义寄存器时要注意,不过一般都是用小端法。

2440串口linux编程,S3C2440串口通讯的相关配置相关推荐

  1. (串口通信编程) 开源串口调试助手Common (Com Monitor)

    原文地址为: (串口通信编程) 开源串口调试助手Common (Com Monitor) 最新的文档见这里:http://blog.twofei.com/566/ 我写的串口调试助手程序以及源代码. ...

  2. 开源串口调试助手java_(串口通信编程) 开源串口调试助手Common (Com Monitor)

    我写的串口调试助手程序以及源代码. 警告:请勿将本软件源代码用于任何商业用途. 其实吧, 我写的这个串口软件绝对比网上流传的一些串口调试软件好用很多, 对于软件,我本身并没有作 太多推广, 一些功能我 ...

  3. perl 串口 linux,Perl的串口操作Win32::SerialPort

    use Win32::SerialPort ;    //引用SeriallPort模块 $PORTNAME = "COM7";  //设置串口号,大于9时候必须要加 " ...

  4. python串口界面编程_python串口通信界面

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  5. 红帽linux编程结束编辑,红帽文件相关操作

    红帽操作(三)文件 mkdir 这个是创建一条路径 可以一次一次的创建. 也可以直接加-p mkdir -p 删除目录 rmdir 必须从最底层删除 rm -rf 安装 yum install -y ...

  6. Linux下安装ElasticSearch(ES)及相关配置

    前言 Elasticsearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java语言开发的,并作为 ...

  7. Linux串口应用编程

    目录 Demo 串口应用编程介绍 终端Terminal 串口应用编程(配置.读取.写入) struct termios 结构体配置 输入模式: c_iflag 输出模式: c_oflag 控制模式: ...

  8. STM32 USB使用记录:使用CDC类虚拟串口(VCP)进行通讯

    文章目录 目的 基础说明 使用STM32CubeIDE配置生成代码 用户代码分析 回环测试 串口参数设置 USB HS使用与演示 通讯速率测试 测试代码 USB FS测试 USB HS测试 影响速度的 ...

  9. Linux:TTY串口驱动数据接收设置

    Linux的uart串口,无论是rs232格式的还是rs485格式的 ,最终都封装为tty接口.一般串口驱动都是芯片厂商开发好的.我们基本只要正确使用就能正常工作. 我这边开发的时候,使用应用层的测试 ...

最新文章

  1. PWN-PRACTICE-BUUCTF-1
  2. ubuntu codeblocks10.05安装全过程 (包含注意事项:安装后不能启动)
  3. User-mode Linux (简体中文)
  4. 超大规模集成电路先进光刻理论与应用_中科院上海光机所光刻机投影物镜热效应模型研究取得进展...
  5. 编译安装httpd 2.4
  6. 行列转换的SQL语句
  7. 为什么快捷指令无法将媒体转换为文本_刘星文:快捷指令这个神器,让你的 iPhone 好用到飞起...
  8. Low-Light Image Enhancement via Edge-Enhanced Multi-Exposure Fusion Network阅读札记
  9. WEB页面打印--打印指定区域,页面预览,页面设置
  10. 电商挖角潮起:工作两年百万年薪
  11. Android App Bundle: 最新改进和 Google Play 新应用计划
  12. java kiwi_【Java拾遗】不可不知的 Java 序列化
  13. 《十周成为数据分析师》笔记——业务线 第八节 常见互联网业务的数据分析报告的制作及用户分层模型
  14. Jackson荧光染料丨艾美捷Jackson Alexa Fluor®荧光染料
  15. 在word文档中如何插入Mathtype公式
  16. 华为BBU3900学习
  17. ~4.2 ccf 2021-12-1 序列查询
  18. 安利3款可以将pdf转换成word免费软件
  19. 造物者之吻:中国手机“爆改安卓”的这些年
  20. mysql 批量更新数据 备份_mysql 批量更新与批量更新多条记录的不同值实现方法...

热门文章

  1. Python Matplotlib设置x轴与y轴相交于心仪的坐标点
  2. 前端显示和隐藏div的方法 / 判断
  3. 计算机内部的单位换算(内存)byte B KB MB GB TB
  4. 惊呆了!C语言也能画小猪佩奇?【附源码】社会我佩奇哥!
  5. 恒指期货实盘记录及下周行情分析!
  6. SQL零基础入门学习(四)
  7. libgdx开发记录
  8. 等了15年,这本编程巨著终于出版了!
  9. 无法从服务器中获取信息吗,无法从服务器获取信息
  10. C函数参数中的三个点