Chinaunix首页 | 论坛 | 博客
  • 博客访问: 938580
  • 博文数量: 192
  • 博客积分: 3070
  • 博客等级: 中校
  • 技术积分: 1861
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-27 23:44
个人简介

Start Linux Leave Linux a while Back to Linux

文章分类

全部博文(192)

文章存档

2023年(18)

2022年(11)

2021年(8)

2020年(14)

2019年(7)

2018年(13)

2017年(16)

2016年(4)

2012年(2)

2011年(13)

2010年(26)

2009年(13)

2008年(27)

2007年(20)

我的朋友

分类: LINUX

2008-06-10 15:32:15

platform: s3c2440 + uboot-1.1.4 + linux-2.6.18
 
买来的开发板串口大多数都是用了 串口0的,而现在要使 串口1和串口2都能够收发数据.
要使其他的串口都能用,只需设置2个地方的可以了。
1) board/smdk2440/smdk2440.c   board_init()
 
 // set GPH6,7 as TXD2,RXD2
 // set GPH4,5 as TXD1,RXD1
 gpio->GPHCON  = 0x0015AAAA;
 gpio->GPHUP   = 0x000007FF;
 gpio->GPHDAT &= 0x000006FF;
 
2) cpu/arm920t/serial.c   serial_setbrg()
 
/* for serial 0 */
S3C24X0_UART * const uart = S3C24X0_GetBase_UART(UART_NR);
 int i;
 unsigned int reg = 0;
 /* value is calculated so : (int)(PCLK/16./baudrate) -1 */
 reg = (get_PCLK()/(16*gd->baudrate)) - 1;
 /* FIFO enable, Tx/Rx FIFO clear */
 uart->UFCON = 0x0;
 uart->UMCON = 0x0;
 /* Normal,No parity,1 stop,8 bit */
 uart->ULCON = 0x3;
 /*
  * tx=level,rx=edge,disable timeout int.,enable rx error int.,
  * normal,interrupt or polling
  */
 uart->UCON = 0x245;
 uart->UBRDIV = reg;
#ifdef CONFIG_HWFLOW
 uart->UMCON = 0x1; /* RTS up */
#endif
 for (i = 0; i < 100; i++);
 
/* for touch panel */
uart = S3C24X0_GetBase_UART(UART_TouchPanel_Inf);
/* value is calculated so : (int)(PCLK/16./baudrate) -1 */
// set baudrate as 19200
reg = (get_PCLK()/(16*19200)) - 1;
/* FIFO enable, Tx/Rx FIFO clear */
uart->UFCON = 0x0;
uart->UMCON = 0x0;
/* Normal,No parity,1 stop,8 bit */
uart->ULCON = 0x3;
/*
* tx=level,rx=edge,disable timeout int.,enable rx error int.,
* normal,interrupt or polling
*/
uart->UCON = 0x245;
uart->UBRDIV = reg;
#ifdef CONFIG_HWFLOW
   uart->UMCON = 0x1; /* RTS up */
#endif
   for (i = 0; i < 100; i++);
 
改了这两个地方串口2就可以正常收发数据了,串口0-2在/dev 目录下的设备名称分别为s3c2410_serial0, s3c2410_serial1, s3c2410_serial2.
但在串口驱动中没有 Read的函数,而在上层中直接调用 read就可以进行读操作.为什么呢?在设备驱动这本书中也提到没有Read函数的,为什么就可以直接读了?
 
 
 
 
阅读(4933) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~