Embedsky007的个人空间 https://www.eechina.com/space-uid-114045.html [收藏] [复制] [分享] [RSS]

博客

TQ2440裸奔程序:串口UART打印printf测试程序

热度 6已有 1152 次阅读2016-3-16 11:11 |个人分类:技术文章| 嵌入式, 发板, 天嵌, 串口, 裸奔

  TQ2440 是由广州天嵌计算机科技有限公司精心打造的一款开发板。以稳定的性能,过硬的质量,丰富的扩展接口,优质的售后服务和技术支持,赢得众多企业的青睐和支持。

  //=========================================

  // NAME: main.c

  // DESC: TQ2440串口UART打印printf测试程序

  //=========================================

  /* 头文件包含 */

  #include "def.h"

  #include "option.h"

  #include "2440addr.h"

  #include

  #include

  static volatile int uart_port = 0;

  void uart_init(int pclk,int buad,int ch)

  {

  //UART初始化:端口使能、功能设定、波特率、设置数据格式

  rGPHCON = (rGPHCON & ~(0xfff<<4)) | (0xaaa<<4);//端口RX[0:2]、TX[0:2]功能

  rGPHUP = rGPHUP | (0x7<<1); //端口GPH[1:3]禁止上拉

  rUFCON0 = 0x0; //禁止FIFO

  rUFCON1 = 0x0; //禁止FIFO

  rUFCON2 = 0x0; //禁止FIFO

  rUMCON0 = 0x0; //禁止AFC

  rUMCON1 = 0x0; //禁止AFC

  //Normal:No parity:One stop:8-bits 中断响应 UART clock: PCLK

  rULCON0 = (rULCON0 & ~0xff) | ((0x0<<6)|(0x0<<3)|(0x0<<2)|(0x3));

  rUCON0 = (rUCON0 & ~0x3ff) | ((0x1<<9)|(0x1<<6)|(0x1<<2)|(0x1));

  rUBRDIV0 = ((int)(pclk/16./buad+0.5)-1);

  rULCON1 = (rULCON1 & ~0xff) | ((0x0<<6)|(0x0<<3)|(0x0<<2)|(0x3));

  rUCON1 = (rUCON1 & ~0x3ff) | ((0x1<<9)|(0x1<<6)|(0x1<<2)|(0x1));

  rUBRDIV1 = ((int)(pclk/16./buad+0.5)-1);

  rULCON2 = (rULCON2 & ~0xff) | ((0x0<<6)|(0x0<<3)|(0x0<<2)|(0x3));

  rUCON2 = (rUCON2 & ~0x3ff) | ((0x1<<9)|(0x1<<6)|(0x1<<2)|(0x1));

  rUBRDIV2 = ((int)(pclk/16./buad+0.5)-1);

  uart_port = ch; //设置串口端口号

  }

  void uart_send_byte(int data)

  {

  if(0 == uart_port)

  {

  if(data == 'n')

  {

  while(!(rUTRSTAT0 & 0x2));

  rUTXH0 = 'n';

  }

  while(!(rUTRSTAT0 & 0x2));

  rUTXH0 = data;

  }

  else if(1 == uart_port)

  {

  if(data == 'n')

  {

  while(!(rUTRSTAT1 & 0x2));

  rUTXH1 = 'n';

  }

  while(!(rUTRSTAT1 & 0x2));

  rUTXH1 = data;

  }

  else if(2 == uart_port)

  {

  if(data == 'n')

  {

  while(!(rUTRSTAT2 & 0x2));

  rUTXH2 = 'n';

  }

  while(!(rUTRSTAT2 & 0x2));

  rUTXH2 = data;

  }

  }

  void uart_send_string(char *string)

  {

  while(*string)

  {

  uart_send_byte(*string++);

  }

  }

  void uart_printf(char *fmt,...)

  {

  va_list ap;

  char string[256];

  va_start(ap,fmt);

  vsprintf(string,fmt,ap);

  uart_send_string(string);

  va_end(ap);

  }

  void Main(void)

  {

  int plck_val = 50000000;

  int buad_val = 115200;

  int ch_val = 0;

  uart_init(plck_val,buad_val,ch_val);

  uart_printf("PCLK is %d,buad is %d,uart_port is %d n",plck_val,buad_val,ch_val);

  while(1);

  }

  感谢晨旭晚霞的支持!

  供货情况:

  天嵌科技提供专业嵌入式板卡和行业解决方案。如有需要,可以联系天嵌科技的销售人员。

  销售电话:020-38219416 38373101

  技术支持:020-38219416转807 820

  网址:http://www.embedsky.com


路过

鸡蛋
1

鲜花

握手

雷人

刚表态过的朋友 (1 人)

发表评论 评论 (7 个评论)

回复 lzh8 2016-3-21 12:19
楼主辛苦了,支持下
回复 张晓然 2016-3-21 14:49
2440板卡用户的福利 赞赞赞
回复 sally_cheng 2016-3-23 16:43
看了必顶
回复 adeechan36 2016-3-24 14:13
谢谢,楼主,一起努力加油!
回复 2851297573 2016-3-24 15:28
收藏,支持,顶起来,噢耶!
回复 想飞的猫星人 2016-3-24 15:49
2440学习的经典,楼主给力
回复 Embedsky007 2016-3-24 15:59
想飞的猫星人: 2440学习的经典,楼主给力
谢谢亲的支持

facelist

您需要登录后才可以评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
返回顶部