裸机系列——2440串口通信2程序代码
来源:互联网 发布:asp在线考试系统源码 编辑:程序博客网 时间:2024/05/16 00:47
2011-04-04
关于一些串口通信的知识已经在上一篇文章中做了总结,这里主要讲程序的问题。
首先是直接通信,即不使用FIFO和中断的通信
代码
代码写的有点乱,开始没有主要风格。
下面的是没有FIFO的中断代码
最后的是使用FIFO的中断代码,一般发送没必要使用中断,我只使用了接受中断,中断处理也很简单
主要是熟悉串口通信原理。
代码如下
最后总结几句关于这次的串口通信程序,引用赵老师的。
1. 对于s3c2440来说,接收数据是被动的,发送数据是主动的,因此一般来说,接收数据用中断方式,发送数据用查询方式较好;
2. 在中断方式下,当接收到数据时,尽管可能该数据无用,但也一定要读取它,否则下次再接收数据时,不会再引起中断,因为接收数据缓存器被上次接收到的数据所霸占,只要没有读取它,它就永远在那里;
3. 由于UART中断涉及到SUBSRCPND寄存器,因此在中断处理程序中不仅要清SRCPND寄存器,还要清SUBSRCPND寄存器,它们的顺序一定是先清SUBSRCPND寄存器,再清SRCPND寄存器,否则就会引起一个中断两次响应的问题。因为是否中断由SRCPND寄存器决定,而SRCPND寄存器的相关状态位由SUBSRCPND寄存器决定,如果先清SRCPND寄存器,而还没有清SUBSRCPND寄存器的话,SRCPND寄存器的相关位还是会被置1,而一旦被置1,则一定还会引起中断
4.使用FIFO时相应的状态寄存器应该使用UFSTAT FIFO状态寄存器来查看FIFO中的数据,不用FIFO是直接查看接收发送寄存器UTRSTAT。21:30:00
- 裸机系列——2440串口通信2程序代码
- 裸机系列——2440串口通信
- 裸机系列——2440串口通信
- ARM裸机——FS2410串口通信(UART)
- TQ210_裸机编程(三)——串口通信
- STC15F2K60S2串口通信程序代码
- S5PV210系列(裸机九)之 串口通信
- 裸机系列-UART串口
- 串口通信与裸机程序
- arduino学习系列——串口通信
- STM32F1x系列——串口通信
- 裸机系列——2440时钟
- 裸机系列——2440实时时钟
- mini2440裸机试炼之——DMA直接存取 实现Uart(串口)通信
- 嵌入式Linux裸机开发(七)——UART串口通信
- 2440裸机程序——串口收发数据
- 裸机系列——IIS_DMA
- 裸机系列——IIC
- 【被教育了】小学课本里那些扯淡课文
- 关于前台传进的数据JsonReader读不出来的问题
- 【咱这教育牛滴】小学语文教材中那些脑残的课文
- 推荐8个超棒的学习 jQuery 的网站
- Web开发人员常用速查手册
- 裸机系列——2440串口通信2程序代码
- python学习笔记之module && package
- Java代码混淆
- 用c语言编写游戏
- CSS学习注意事项
- VS2005 安装包卸载
- 机房收费系统(三)
- Ubuntu软件包管理工具
- Ubuntu 10.10下交叉编译环境搭建之总结