s3c2440串口调试函数

发布者:琴弦悠扬最新更新时间:2016-05-03 来源: eefocus关键字:s3c2440  串口调试函数 手机看文章 扫描二维码
随时随地手机看文章

 

  1. #include "2440addr.h"  
  2. #include   
  3. #include   
  4. #include   
  5. #include   
  6. #include   
  7. #define TXD0READY   (1<<2)  
  8. #define RXD0READY   (1)  
  9.  
  10. #define UART_CLK     50000000       //  UART0的时钟源设为PCLK  
  11. #define UART_BAUD_RATE  115200      // 波特率  
  12. #define UART_BRD        ((UART_CLK  / (UART_BAUD_RATE * 16)) - 1)  
  13. /* 
  14.  * 初始化UART0 
  15.  * 115200,8N1,无流控 
  16.  */  
  17. void Uart0_Init(void)  
  18. {  
  19.     rGPHCON |= 0xa0;    // GPH2,GPH3用作TXD0,RXD0  
  20.     rGPHUP  = 0x0c;     // GPH2,GPH3内部上拉  
  21.     rULCON0  = 0x03;     // 8N1(8个数据位,无较验,1个停止位)  
  22.     rUCON0   = 0x05;     // 查询方式,UART时钟源为PCLK  
  23.     rUFCON0  = 0x00;     // 不使用FIFO  
  24.     rUMCON0  = 0x00;     // 不使用流控  
  25.     rUBRDIV0 = UART_BRD; // 波特率为115200  
  26. }  
  27. /* 
  28.  * 发送一个字符 
  29.  */  
  30. void Send_Byte(unsigned char c)  
  31. {  
  32.     /* 等待,直到发送缓冲区中的数据已经全部发送出去 */  
  33.     while (!(rUTRSTAT0 & TXD0READY));  
  34.       
  35.     /* 向UTXH0寄存器中写入数据,UART即自动将它发送出去 */  
  36.     rUTXH0 = c;  
  37. }  
  38. /* 
  39.  * 接收字符 
  40.  */  
  41. unsigned char Get_Byte(void)  
  42. {  
  43.     /* 等待,直到接收缓冲区中的有数据 */  
  44.     while (!(rUTRSTAT0 & RXD0READY));  
  45.       
  46.     /* 直接读取URXH0寄存器,即可获得接收到的数据 */  
  47.     return rURXH0;  
  48. }  
  49. /* 
  50.  * 判断一个字符是否数字 
  51.  */  
  52. int isDigit(unsigned char c)  
  53. {  
  54.     if (c >= '0' && c <= '9')  
  55.         return 1;  
  56.     else  
  57.         return 0;         
  58. }  
  59. /* 
  60.  * 判断一个字符是否英文字母 
  61.  */  
  62. int isLetter(unsigned char c)  
  63. {  
  64.     if (c >= 'a' && c <= 'z')  
  65.         return 1;  
  66.     else if (c >= 'A' && c <= 'Z')  
  67.         return 1;         
  68.     else  
  69.         return 0;  
  70. }  
  71. void Uart0_SendString(char *pt)  
  72. {  
  73.     while(*pt)  
  74.     {  
  75.         Send_Byte(*pt++);  
  76.     }  
  77. }  
  78.   
  79. void Uart_Printf(char *fmt,...)  
  80. {  
  81.     va_list ap;  
  82.     char string[256];  
  83.     va_start(ap,fmt);  
  84.     vsprintf(string,fmt,ap);  
  85.     Uart0_SendString(string);  
  86.     va_end(ap);  
  87. }   

关键字:s3c2440  串口调试函数 引用地址:s3c2440串口调试函数

上一篇:STM32的Remap
下一篇:NANDFlashd的读写(基于s3c2440)

推荐阅读最新更新时间:2024-03-16 14:52

基于嵌入式Linux的倒车影音系统设计
  引言   电子信息与数字图像处理技术目前已被广泛地应用在各个领域,车载系统的信息化已成为现代汽车业的重要标志。现在的倒车雷达系统可以为驾驶者提供许多帮助,多数采用超声波测距技术,可以直接显示出车尾与障碍物之间的距离。但由于超声波的散射特性,如果地面有尖锐的突起或存在横在半空的棱角状物体,系统就不能有效地“察觉”。假如能为现有的倒车系统增加一个可视功能,那么驾驶员在倒车时不必回头就可清楚车后的情况。本文设计了一种可视化安全倒车系统,该系统采用嵌入式Linux操作系统内核驱动USB摄像头实现车后状况实时监控,通过判断超声波测距是否达到阈值来启动语音报警功能。   1 系统方案设计   如图1所示,系统由主控模块、超声波收发模
[单片机]
基于嵌入式Linux的倒车影音系统设计
s3c2440裸机-异常中断(四. irq之外部中断)
中断前: 中断产生后: 问题案例: 我们想实现一个按键点灯程序,我们知道有以下两种方案: 1.轮询方案:轮询检测按键的电平状态,当检测到被按下后,对应的gpio会拉低,点亮对应的led;(略) 2.中断方案:将按键配置成外部中断源,当有按键按下,触发中断,在中断服务程序(isr)中去完成点灯。 下面开始写代码: 一.中断初始化 1)中断源设置 我们用按键作为外部中断源,我们把按键对应的gpio配置成中断引脚,当按键按下,相应的gpio产生了电平跳变,就会触发外部中断。 我们想达到按下按键灯亮,松开按键灯灭这种效果(配成双边沿触发,按下的时候产生下降沿中断,进行点亮,松开产生上升沿中断,进行熄灭)。当然也可做成按一下
[单片机]
<font color='red'>s3c2440</font>裸机-异常中断(四. irq之外部中断)
keil4.74中运行s3c2440程序出现警告 进行一步骤修改
安装提示 一步一步的修改 解析 警告 warning: A1608W: MOV pc, rn  instruction used, but BX  rn  is preferred。  这需要配置keil软件 在option属性中Asm选项卡中去掉Enable ARM/Thumb Interworking选项。 编译出现一个警告 src2440init.s(341): warning: A1876W: Use of '|' as a synonym for the :OR: operator is deprecated. 警告信息:warning: A1876W: Use of ‘|’ as
[单片机]
keil4.74中运行<font color='red'>s3c2440</font>程序出现警告 进行一步骤修改
05-S3C2440学习之内核(移植)linux3.4.2移植(1) 简单移植+修改MTD分区+制作jffs2文件系统
一、框架介绍及简单修改 1.1 Bootloader如何引导内核 Bootloader的工作: (1)讲内核读入内存中 (2)存一些内核启动参数到指定位置,内核启动时去解析 (3)启动内核,传入机器ID 1.2、内核的启动流程: 首先 内核的最终目的是挂接根文件系统,并启动应用程序。 想启动应用程序—需要挂接根文件系统—装载驱动程序(flash、网卡)--要解析参数(文件系统在哪)--根据R1判断内核是否支持该ID—支持调用初始化相关函数 每个开发板都有不同的硬件参数 内核移植过程中要决定我这个内核支持哪些硬件开发板 我在内核里针对这个开发板给他一个ID。Uboot启动的时候传入和内核中设置好的匹配
[单片机]
05-S3C2440学习之内核(移植)linux3.4.2移植(1) 简单移植+修改MTD分区+制作jffs2文件系统
S3C2440 cpu初始化(reset内容)
reset内容(start.S文件): 1、设置svc模式 设置处理器的模式为svc模式,根据ARM架构参考手册,处理器有七种工作模式: 在程序状态寄存器讲模式设置为10011: 汇编代码如下: set_svc: mrs r0, cpsr bic r0, r0, #0x1f orr r0, r0, #0xd3 msr cpsr, r0 mov pc,lr 2、关闭看门狗 在对应的芯片手册(我用的是S3C2440)找到看门狗相关的寄存器,并关闭看门狗定时器输出的复位信号: 对应汇编代码: disable_watchdog: ldr r0, #pWTCON mov r1, #0x0 str r1, mov pc,lr
[单片机]
<font color='red'>S3C2440</font>  cpu初始化(reset内容)
裸机系列——IIS_DMA
s3c2440的IIS总线已经弄了好久,今天大概可以做个总结了吧,最近几天调试IIS弄了人有点疲惫,遇到了很多的问题,但是正是这些问题让我在成长。过多的情绪就不在表现了。进入今天的主题,IIS——DMA总结。 问题1、DMA物理地址 前面我调试DMA的时候也是调了好几天的DMA的UART通信一直得不到结果,后面上网搜了一些大概的信息,DMA需要传输时需要设置连续的物理地址,同时关于虚拟地址,物理地址,总线地址这些不明白,所以我就把#define buffer ((volatile unsigned short *)0x55000010)这种绝对地址当做唯一的物理地址。后面因为直接给个我认为的物理地址后程序不好弄就没调试了。
[单片机]
S3c2440ARM异常与中断体系详解3---Thumb指令集程序示例
在上节视频里说ARMCPU有两种状态 ARM State 每条指令会占据4byte Thumb State 每条指令占据2byte 我们说过Thumb指令集并不重要,本节演示把一个程序使用Thumb指令集来编译它 使用上一章节的重定位代码,打开Makefile和Start.S Makefile文件 all: arm-linux-gcc -c -o led.o led.c arm-linux-gcc -c -o uart.o uart.c arm-linux-gcc -c -o init.o init.c arm-linux-gcc -c -o main.o main.c arm-linu
[单片机]
基于Linux NFS的Web数码相框设计
   O 引言   随着数码相机和互联网的普及,越来越多的家庭拥有自己的媒体库。媒体库中既包含有自己拍摄的影像文件,也有从网络上下载的影像资料。然而展示影像资料的手段单一,主要通过PC来实现。因此未来构建以媒体库为中心的家庭多媒体网络,把多媒体资料在各式各样的家庭网络媒体终端上展示出来,将成为一种必然的趋势。媒体终端包括Web数码相框、网络数字电视等。   Web数码相框的提出正是为了设计一种家庭嵌入式网络媒体终端,但目前市场上常见的数码相框的网络可扩展性差,本设计方案的提出正是为了能够弥补这方面的不足,提高网络可扩展性。并在本设计方案的基础上构建网络数字电视等其他多功能终端实体。    1 技术方案   Web数
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved