文档章节

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

天嵌科技
 天嵌科技
发布于 2016/03/16 11:22
字数 554
阅读 15
收藏 0
点赞 1
评论 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


© 著作权归作者所有

共有 人打赏支持
天嵌科技
粉丝 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

试图搞懂MDK程序下载到Flash(四)--生成bin文件下载到Nor Flash

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

长平狐 ⋅ 2013/06/17 ⋅ 0

Linux下的串口编程(二)

Linxu下的串口编程(二) --------------------------------------------------------- Author :tiger-john WebSite :blog.csdn.net/tigerjb Email :jibo.tiger@gmail.com Update-Time : 20......

YACHE ⋅ 2011/07/04 ⋅ 0

一起学mini2440裸机开发(七)--UART高级实验,可变参函数

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

长平狐 ⋅ 2013/06/17 ⋅ 0

制作esp8266+c51,点亮单片机上的led小灯

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

lnyaigsm0110 ⋅ 2017/03/14 ⋅ 0

实验8:pcDuino串口实验

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

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

汽车行驶姿态 -- 串口通信

一、原理图分析 先看一下硬件原理图: DM368 有两组 UART,接的是 UART 1。也就是说串行端口所对应的设备名称是 /dev/ttyS1 如果是接到PC端的串口,可以使用 echo hello > /dev/ttyS1 来测试...

qq_29350001 ⋅ 2017/12/22 ⋅ 0

Rayeager PX2开发板上的串口UART3使用入门

UART3在此图上左半区(http://wiki.chipspark.com/cn/ind ... 5%E5%8F%A3%E5%9B%BE),在GPIO扩展这组接口中,UART3是最容易连接外扩的一个串口(TTL电平),开发中需要接一些串口的外围器件...

穿prada的008 ⋅ 2015/01/26 ⋅ 0

一起学mini2440裸机开发(十三)--ADC原理与实验

概述 S3C2440的CMOS模拟数字转换器ADC可以对8通道模拟输入信号进行循环检测,S3C2440的ADC和触摸屏公用一个ADC转换器,所以学习ADC也是学习触摸屏的基础。 S3C2440ADC的主要特性如下: ●分辨...

长平狐 ⋅ 2013/06/17 ⋅ 0

STC12单片机串口U盘测试程序源码

开发工具: C++ 对象: 51单片机 文件: STC12单片机串口测试程序源码 文件说明: www.usbing.net 为了便于用户熟悉优博士串口U盘USB118AD模块,帮助用户快速使用UART串口进行通信,我们特别...

dataie456000 ⋅ 2015/12/01 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

BS与CS的联系与区别【简】

C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、InFORMix或 SQL Server。客户端需要安装专用的客户端软件。 B/S是Brower/...

anlve ⋅ 50分钟前 ⋅ 0

发生了什么?Linus 又发怒了?

在一个 Linux 内核 4.18-rc1 的 Pull Request 中,开发者 Andy Shevchenko 表示其在对设备属性框架进行更新时,移除了 union 别名,这引发了 Linus 的暴怒。 这一次 Linus Torvalds 发怒的原...

问题终结者 ⋅ 今天 ⋅ 0

在树莓派上搭建一个maven仓库

在树莓派上搭建一个maven仓库 20180618 lambo init 项目说明 家里有台树莓派性能太慢。想搭建一个maven私服, 使用nexus或者 jfrog-artifactory 运行的够呛。怎么办呢,手写一个吧.所在这个...

林小宝 ⋅ 今天 ⋅ 0

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 今天 ⋅ 0

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 今天 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 今天 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 今天 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部