裸机系列——2440串口通信

2011-04-04

串口通信还没弄完,等到全部弄完了在一起做一个总结,首先每天先记录一下现在的学习心得。

串口调试有几天了,发现串口调试还是比较难的,以后不管是调其他的什么器件都要遵循先容易的把最简单的框架弄好,再一步步的增加功能,一开始我试想一步就把把串口通信弄完,直接写一个基于FIFO的中断串口通信,我承认我失败了,弄了好久没一点结果。弄串口通信还是先写一个不用FIFO的直接用查询的程序,然后再加中断,最后写FIFO的中断程序。今天我写了是不用FIFO的中断程序,有几点要注意的地方。

1. 一定要先把手册看明白看清楚后在来写程序,其实中断的话如果简单的话只要设计几个寄存器,中断屏蔽寄存器INTMASK。开始我没看懂手册就开始写程序,把一堆的寄存器配置什么结果都没有。

2. 程序风格要好,注释要清晰,放在一个函数的前面,可以是这个函数的结构脉络,然后程序中间还可以插入一些必要的解释,这是我个人的理解,我觉得这样看起来会比较舒服。而且思路清晰。

3. 回到今天的程序,对于2440的中断一定要先清除中断挂起寄存器INTPND 和 SRCPND,如果遇到子中断的话还要先清除子中断,注意清除中断是给相应的中断位置1清除,二是先清除子中断然后清除父中断,这个是我给的叫法,理解就好。三是即使是初始化中断寄存器也要先清除相应中断位,今天我就是因为这个地方而弄了好久。

今天要感谢赵春江老师的博客,写的非常好,今天是参考了赵老师的博客才发现是要初始化时清除中断。链接地址:

http://blog.csdn.net/zhaocj/archive/2010/03/10/5364412.aspx

今天就写到这里。20:27:31

S3C2440串口总结

ARM平台                    mini2440友善之臂

是否需要操作系统        否,裸机编程

串口通信总结如下

1. 基本知识概括

     S3C2440包含三个独立串口,UART0-3,支持系统时钟的115.2Kbps波特率,手册上说明用外部高频率时钟可以提高波特率,每个UART包含一个64Byte的FIFO。

     2440有多种通信模式,直接通信,FIFO,DMA,红外模式,自动流。详细见数据手册。

2. 把下面这个图看懂。即串口通信原理方框图

3. 配置好寄存器

其实配置寄存器的时候一定要把手册多看几篇,因为很多寄存器可能是硬件置位的只要你清除的,比如中断的几个挂起寄存器INTPND SRCPND这些寄存器就只要置1清除就好了。UART通信主要是配置寄存器。

4. 其他相关知识

中断,这个是很串口通信相关的,首先要把中断弄明白,还是要先清除中断挂起寄存器,还要注意顺序。

时钟,这个很重要,应该串口通信很重要的一点就是波特率,而波特率是由时钟控制的,其中串口的时钟一般是用PCLK时钟驱动,具体的2440的时钟以及相关配置在另一篇文章中已经说明白。

MMU,其实这个是与中断相关的,因为我们是裸机编程,中断的时候程序需要跳转,需要地址映射。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值