当前位置: 代码迷 >> 驱动开发 >> TQ2440串口通信的有关问题
  详细解决方案

TQ2440串口通信的有关问题

热度:159   发布时间:2016-04-28 11:22:29.0
TQ2440串口通信的问题
小弟在写一个UART的程序,各个寄存器也都配置了,但是程序下载进去之后,无法在SecureCRT中看到发回来的数据,请高手们帮忙啊~~万分感谢~
#include<S3C2440.h>
#define PCLK 50000000 // 设置PCLK为50MHz
#define UART_BAUD_RATE 115200 // 波特率

void uart0_init(void)
{
  GPHCON |= 0xaa; // GPH0,GPH1,GPH2,GPH3分别nCTS0,nRTS0,TXD0,RXD0
  GPHUP = 0x7ff; //内部上拉被禁止
UFCON0 = 0x00; // 不使用FIFO
  UMCON0 = 0x00; // 不使用流控

  ULCON0 = 0x03; // 8N1(8个数据位,无校验,1个停止位)
  UCON0 = 0x245;  
// 查询方式,UART时钟源为PCLK,中断请求方式为Tx-电平,Rx-脉冲
  UBRDIV0=( (int)(PCLK/16./UART_BAUD_RATE+0.5) -1 ); //设置波特率
}

void Uart_SendByte(char data)
{
if(data=='\n')
{
while(!(UTRSTAT0 & 0x2));

// Delay(1); //because the slow response of hyper_terminal
  UTXH0 = 'r'; //将数据写入到UART0发送缓冲器中
}
while(!(UTRSTAT0 & 0x2)); //Wait until THR is empty.
// Delay(1);
UTXH0 = data;
}  
//========发送字符串的函数
void Uart_SendString(char *pt) 
{
  while(*pt)
  Uart_SendByte(*pt++);
}
int main(){
uart0_init();
while(1){
Uart_SendByte(47);
}

}





------解决方案--------------------
示波器看下,发送出来没?
------解决方案--------------------
示波器看一下,数据发送出来没有。
没发出来,是下位机问题;发出来了,是上位机的问题。
------解决方案--------------------
TQ板子貌似完全是盗版的 兼容性貌似也不是很好!
------解决方案--------------------
探讨
2 3 楼好办法~不过估计是下位机的问题,因为我直接使用里程的话,是可以进行通信的~