S3C2410 串口通讯问题

tosail 2009-12-12 02:07:29
最近本人编写了一个简单串口程序,只是发送,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);
}

...全文
给本帖投票
192 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tosail 2010-03-29
  • 打赏
  • 举报
回复
问题在于没有硬件初始化,配置堆栈、存储器配置、数据初始化等等。前段时间已经PASS
tosail 2009-12-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dairyman000 的回复:]
按照楼主ARM的代码,有没有中断时没有关系的。楼主确认ARM里的代码在跑吗?
[/Quote]
代码是执行了,但是我读汇编困难些。我一直在想,是不是需要启动代码啊(串口通讯running)
qprevf 2009-12-22
  • 打赏
  • 举报
回复
2410的话这里发送的地方while (!(rUTRSTAT0 & 0x02));
应该是0x4,没记错的话,你自己去查查寄存器,别把高低位搞反了....
我且低吟浅唱 2009-12-22
  • 打赏
  • 举报
回复
按照楼主ARM的代码,有没有中断时没有关系的。楼主确认ARM里的代码在跑吗?
tosail 2009-12-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 kelibin 的回复:]
有配中断么
[/Quote]
恩!是啊,中断没配置,是不是再加中断配置也不够,我的程序里没S3C2410的系统初始化程序,只是在C代码里操作是不是不可以啊?
tosail 2009-12-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 beyondma 的回复:]
你有这个串口吗?rULCON0 = 0x3
[/Quote]
有啊! 我的上面代码中有这句。
是不是还需要系统初始化啊,汇编的(相当于bootloader) ?
Kelibin 2009-12-14
  • 打赏
  • 举报
回复
有配中断么
beyondma 2009-12-13
  • 打赏
  • 举报
回复
你有这个串口吗?rULCON0 = 0x3
tosail 2009-12-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kelibin 的回复:]
你用什么芯片?每个人的方法都不一样,这样帖出来除非跟你一样代码的人不然估计没有人能看懂啊
[/Quote] FS2410 开发板,ARM :S3C2410
HeyMe 2009-12-12
  • 打赏
  • 举报
回复
具体问题出在哪呢,还是了解清楚是哪一块出问题了,利用示波器来找问题吧,
Kelibin 2009-12-12
  • 打赏
  • 举报
回复
你用什么芯片?每个人的方法都不一样,这样帖出来除非跟你一样代码的人不然估计没有人能看懂啊
这是我买的广嵌GEC2410开发板里面附带的教程 目录: ARM9基础实验教程 第一章 嵌入式系统 1.1 嵌入式系统的概念 1.2 嵌入式系统的组成 1.3 嵌入式系统的发展 1.4 嵌入式系统的应用前景 第二章 ARM9 体系结构 2.1 ARM 简介 2.2 ARM 微处理器结构 2.3 寄存器组织 2.4 异常(EXCEPTIONS) 2.5 ARM 微处理器的应用选型 第三章 ARM9-2410EP开发板说明 3.1 系统概述 3.2 电路说明 3.3 FLASH 芯片的烧录 第四章 ADS 开发及 MULTI-ICE 仿真器应用 4.1 ADS 集成开发环境组成介绍 4.2 使用 ADS 创建工程 4.3 工程的调试 4.4 MULTI-ICE 仿真器及超级终端 第五章 嵌入式开发基础实验 实验一 汇编指令实验 1 实验二 汇编指令实验 2 实验三 C 语言程序实验 1 实验四 C 语言程序实验 2 第六章 基本实验 实验一 无仿真器程序下载运行实验 实验二 I/O接口实验 实验三 串口通讯实验 实验四 实时时钟实验 实验五 I²C 实验 1—EEPROM 实验 实验六 I²C 实验 2—基于 I²C 数码管扫描电路 实验七 WATCHDOG 实验 实验八 触摸屏控制实验 实验九 I/O实验——8×8发光二极管点阵试验 实验十 A/D转换实验 实验十一 D/A转换实验 实验十二 音频接口 I²S实验 实验十三 键盘中断实验 实验十四 SUPER I/O串口实验 实验十五 SUPER I/O键盘实验 实验十六 网络通信实验 实验十七 PROGRAM FLASH实验 第七章 扩展实验 实验一 GPS 实验 实验二 GPRS实验 INDEX END, 共196页

21,615

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧

手机看
关注公众号

关注公众号

客服 返回
顶部