文档章节

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

天嵌科技
 天嵌科技
发布于 2016/03/16 11:22
字数 554
阅读 21
收藏 0

  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


本文转载自:http://www.embedsky.com/index.php?s=/News/show/id/389.html

共有 人打赏支持
天嵌科技
粉丝 4
博文 135
码字总数 40355
作品 0
广州
私信 提问
SYD8801 UART使用说明【uart轮发数据代码实现】【 uart中断发数据代码实现】【RFSleep函数对串口的影响】【中断中调用串口打印函数有可能会造成死机】

SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机、32位ARM Cortex-M0处理器、128kB Flash存储器、以及丰富的数字接口。SYD8801片上集成了Balun无需阻抗匹配网络、高效...

chengdong1314
2017/06/13
0
0
试图搞懂MDK程序下载到Flash(四)--生成bin文件下载到Nor Flash

喜讯啊!!下载到flash中的一种实现了啊!!!鸡冻了!终于可以脱机运行了,尽管是下载到了Nor Flash中运行,还没有下载到Nand Flash中运行,但是这也是一个进步了吧,下面详细介绍一下MDK编...

长平狐
2013/06/17
1K
0
一起学mini2440裸机开发(七)--UART高级实验,可变参函数

概述: 在C语言中,使用printf()进行格式化输出非常方便,例如,printf("%dn",a)可以将a的值以十进制的格式输出,然后换行。printff()函数的原型为:int printf(const char *format,...),在...

长平狐
2013/06/17
218
0
制作esp8266+c51,点亮单片机上的led小灯

最近有朋友让我做一个手机通过wifi控制51单片机led小灯(功能很简单,就是一个床头灯)。我上网查了查,esp8266wifi模块功能很强大,但是没有基于51的(其实有几篇,但是通过实践都不好使,不...

lnyaigsm0110
2017/03/14
0
0
实验8:pcDuino串口实验

pcDuino上面有两种串口。 一种是调试串口,也就是用来命令行方式进入Linux的串口。 还有一种是 UART,可以用来和其他UART模块进行通讯,控制的。 在这里我们看看 管脚 0,1的串口。 在这个实验...

雨后的彩虹桥
2014/01/15
563
0

没有更多内容

加载失败,请刷新页面

加载更多

Apache日志不记录访问静态文件,访问日志切割,静态元素过期时间设置

Apache配置不记录访问静态文件的日志 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 vhost原始配置 <VirtualHost *:80> ServerAdmin test@163.com DocumentRoo...

野雪球
今天
1
0
聊聊storm的ICommitterTridentSpout

序 本文主要研究一下storm的ICommitterTridentSpout ICommitterTridentSpout storm-core-1.2.2-sources.jar!/org/apache/storm/trident/spout/ICommitterTridentSpout.java public interface......

go4it
今天
2
0
Ubuntu常用操作

查看端口号 netstat -anp |grep 端口号 查看已使用端口情况 netstat -nultp(此处不用加端口号) netstat -anp |grep 82查看82端口的使用情况 查找被占用的端口: netstat -tln netstat -tl...

hc321
昨天
1
0
网站cdn的静态资源突然访问变的缓慢,问题排查流程

1.首先我查看了一下是否自己的网络问题,通过对比其他资源的访问速度和下载速度,确认不是 2.通过ping 和 tracert 判断cdn域名能否正常访问,(最后回想感觉这一步可以省略,因为每次最终能访...

小海bug
昨天
3
0
Mybatis 学习笔记四 MyBatis-Plus插件

Mybatis 学习笔记四 MyBatis-Plus插件 maven依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <ve......

晨猫
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部