4679|11

63

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

S3C2410 串口通讯问题 [复制链接]

最近本人编写了一个简单串口程序,只是发送,PC的软件接收。但是几天下来,都不成功,调试时PC软件根本接收不到,汗 !!!
现在把代码贴出来,请大家帮忙指点。

#include "2410addr.h"


void Delay(int NUM) {
    int i;
    for(i=NUM;i>0;i--);
}
//************************************************************************************************
void Clock_Init()  {
   
    rCLKCON  = 0x7fff0;
    rCLKDIVN = 0x03;      //HCLK=FCLK/2 ; PCLK=HCLK/2
    rMPLLCON = 0x520101;  //MPLL ouput F=180MHz
}
//************************************************************************************************   
void Port_Init(void) {
   
    //*** PORT H GROUP
    //Ports  :  GPH10    GPH9  GPH8 GPH7  GPH6  GPH5 GPH4 GPH3 GPH2 GPH1  GPH0
    //Signal : CLKOUT1 CLKOUT0 UCLK nCTS1 nRTS1 RXD1 TXD1 RXD0 TXD0 nRTS0 nCTS0
    //Binary :   10   ,  10     10 , 11    11  , 10   10 , 10   10 , 10    10
    rGPHCON = 0xa0;     //0x2afaaa;
    //rGPHUP  = 0x7ff;    // The pull up function is disabled GPH[10:0]
    rGPHUP  = 0x00;
}
//************************************************************************************************  
void Uart_Init(int pclk,int baud) {

//uart0
    rULCON0 = 0x3;   //Line control register : Normal,No parity,1 stop,8 bits
     //    [10]       [9]     [8]        [7]        [6]      [5]         [4]           [3:2]        [1:0]
     // Clock Sel,  Tx Int,  Rx Int, Rx Time Out, Rx err, Loop-back, Send break,  Transmit Mode, Receive Mode
     //     0          1       0    ,     0          1        0           0     ,       01          01
     //   PCLK       Level    Pulse    Disable    Generate  Normal      Normal        Interrupt or Polling
    rUCON0  = 0x345;   // Control register
    //rUBRDIV0=( (int)(pclk/16./baud) -1 );   //Baud rate divisior register 0
    rUBRDIV0=( (int)(pclk/16.0/baud+0.5) -1 );   //Baud rate divisior register 0
   
//  pclk    =  PCLK;
    rUFCON0 = 0x00;  //UART channel 0 FIFO control register, FIFO disable
    rUMCON0 = 0x0;   //UART chaneel 0 MODEM control register, AFC disable
}
//************************************************************************************************
void putc(unsigned char ch) {

    while (!(rUTRSTAT0 & 0x02)); //wait until TBR is empty
    Delay(100);
    WrUTXH0(ch);
}
   
char getc() {

    while (! (rUTRSTAT0 & 0x01)); //wait until receive data ready
    Delay(100);
    return RdURXH0();
}
//************************************************************************************************
int main() {

    Clock_Init();
    Port_Init();
    Delay(1000);

    Uart_Init(180000000,115200);
    while(1)  
      putc(0x10);
}
   
   

最新回复

问题在于没有硬件初始化,配置堆栈、存储器配置、数据初始化等等。前段时间已经PASS  详情 回复 发表于 2010-3-29 00:25
点赞 关注

回复
举报

71

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
你用什么芯片?每个人的方法都不一样,这样帖出来除非跟你一样代码的人不然估计没有人能看懂啊
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
具体问题出在哪呢,还是了解清楚是哪一块出问题了,利用示波器来找问题吧,
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

4
 
引用 1 楼 kelibin 的回复:
你用什么芯片?每个人的方法都不一样,这样帖出来除非跟你一样代码的人不然估计没有人能看懂啊
FS2410 开发板,ARM :S3C2410
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
你有这个串口吗?rULCON0 = 0x3
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

6
 
有配中断么
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 4 楼 beyondma 的回复:
你有这个串口吗?rULCON0 = 0x3

有啊! 我的上面代码中有这句。
是不是还需要系统初始化啊,汇编的(相当于bootloader) ?
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 5 楼 kelibin 的回复:
有配中断么

恩!是啊,中断没配置,是不是再加中断配置也不够,我的程序里没S3C2410的系统初始化程序,只是在C代码里操作是不是不可以啊?
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

9
 
按照楼主ARM的代码,有没有中断时没有关系的。楼主确认ARM里的代码在跑吗?
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

10
 
2410的话这里发送的地方while (!(rUTRSTAT0 & 0x02));
应该是0x4,没记错的话,你自己去查查寄存器,别把高低位搞反了....
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 8 楼 dairyman000 的回复:
按照楼主ARM的代码,有没有中断时没有关系的。楼主确认ARM里的代码在跑吗?

代码是执行了,但是我读汇编困难些。我一直在想,是不是需要启动代码啊(串口通讯running)
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

12
 
问题在于没有硬件初始化,配置堆栈、存储器配置、数据初始化等等。前段时间已经PASS
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表