S3C2440串口代码_函数_初始化_发送Byte_发送string_Printf

发布者:雅致人生最新更新时间:2019-11-27 来源: eefocus关键字:S3C2440  串口  函数  初始化 手机看文章 扫描二维码
随时随地手机看文章

通常情况下都会将串口的初始化语句写进一个初始化函数Uart_Init()中:


 1 void Uart_Init(int baud)

 2 {

 3     int i;

 4     rUFCON0 = 0x0;   //UART FIFO disable

 5     rULCON0 = 0x3;   //关闭红外传输模式而用Normal模式,No parity,1 stop,每帧8bits数据位

 6     rUCON0  = 0x805; //先看[11:10]=10,UART时钟源为PCLK,那么[15:12]就没用了,置零,接收与发送的中断类型均为Pulse,禁止接收超时中断的产生,禁止接收错误中断的产生

 7                      //不采用loopback工作模式而采用normal模式,不发送break signal而采用normal transmit

 8     rUBRDIV0=( (int)(50000000/16./baud+0.5) -1 );   //Baud rate divisior register 0

 9     for(i=0;i<100;i++);//延时

10 }

 

串口发送字节Byte的函数Uart_SendByte():


 1 void Uart_SendByte(int data)

 2 {

 3    

 4         if(data=='n')

 5         {

 6             while(!(rUTRSTAT0 & 0x2));

 7          

 8             WrUTXH0('r');

 9         }

10         while(!(rUTRSTAT0 & 0x2));   //Wait until THR is empty.

11       

12         WrUTXH0(data);//一个宏

13 }


上面程序中的WrUTXH0()是一个宏,定义在另外一个文件中,形式为:


#define WrUTXH0(ch) (*(volatile unsigned char *)0x50000020)=(unsigned char)(ch)

所以WrUTXH0(data)的作用就相当于:


1 #define rUTXH0          (*(volatile unsigned *)0X50000020)

2 rUTXH0=data;

这两者功能是等价的。


串口发送字符串的函数Uart_SendString()实质就是不断调用Uart_SendByte()函数,将字符串一个字节一个字节的发出去:


1 void Uart_SendString(char *pt)

2 {

3     while(*pt)

4         Uart_SendByte(*pt++);

5 }

 

串口打印函数Uart_Printf()就是调用发送字符串的函数:


 1 void Uart_Printf(char *fmt,...)

 2 {

 3     va_list ap;

 4     char str[255];

 5 

 6     va_start(ap,fmt);

 7     vsprintf(str,fmt,ap);

 8     Uart_SendString(str);

 9     va_end(ap);

10 }


Uart_GetKey():


1 char Uart_GetKey(void)

2 {

3     if (rUTRSTAT0 & 0X01)  //接收是否完毕 =1结束

4         return rURXH0;

5     else 

6         return 0;

7 }

关键字:S3C2440  串口  函数  初始化 引用地址:S3C2440串口代码_函数_初始化_发送Byte_发送string_Printf

上一篇:Cortex-M3学习LPC1768 - 按键实验
下一篇:S3C2440串口通信基本功能的代码(注释+学习)

推荐阅读最新更新时间:2024-10-17 12:27

S3C2440串口代码_函数_初始化_发送Byte_发送string_Printf
通常情况下都会将串口的初始化语句写进一个初始化函数Uart_Init()中: 1 void Uart_Init(int baud) 2 { 3 int i; 4 rUFCON0 = 0x0; //UART FIFO disable 5 rULCON0 = 0x3; //关闭红外传输模式而用Normal模式,No parity,1 stop,每帧8bits数据位 6 rUCON0 = 0x805; //先看 =10,UART时钟源为PCLK,那么 就没用了,置零,接收与发送的中断类型均为Pulse,禁止接收超时中断的产生,禁止接收错误中断的产生 7 //不采用loopback工
[单片机]
S3C2440 摄像接口CamInit()函数初始化之分析
在调试2440 相机接口的时候碰到问题最多的就是这个CamInit()函数,下面贴上代码,分析之 /* Description of Parameters CoDstWidth: Destination Width of Codec Path CoDstHeight: Destination Height of Codec Path PrDstWidth: Destination Width of Preview Path PrDstHeight: Destination Height of Preview Path WinHorOffset: Size of Window Offset for Horizontal Directi
[单片机]
<font color='red'>S3C2440</font> 摄像接口CamInit()<font color='red'>函数</font><font color='red'>初始化</font>之分析
STM32串口1,2,3初始化函数代码(标准库版)
没有使用中断 cks32C8T6、stm32c8t6直接复制使用 其他芯片注意引脚,复用功能什么的 串口1初始化代码 //串口1 void Uart1_init(u32 bound){ //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA时钟 //USART1_TX GPIOA.9 GPIO_InitStruc
[单片机]
STM32串口中断实验总结函数初始化
STM32串口中断实验总结函数的初始化必须在变量的初始化之后在进行! 在进行串口的实验的时候,自己没有看教程,写了一段代码,但是进行编译之后发现一直有错误,就算我把代码更改之后还是一直有错误。对比了官方给的教程之后发现唯一的不同之处就是我的有一个函数的初始化是在变量的初始化之前,进行的初始化,在进行相应的知识查询之后,还有请教了师兄之后,发现了自己以前一直没有注意到的问题就是,函数的初始化必须放到变量的初始化之后,否则在使用keil也就是MDK进行建立工程的时候就会报错。 注意细节
[单片机]
STM32<font color='red'>串口</font>中断实验总结<font color='red'>函数</font>的<font color='red'>初始化</font>
STM32串口中断实验总结函数初始化必须在变量的初始化之后
在进行串口的实验的时候,自己没有看教程,写了一段代码,但是进行编译之后发现一直有错误,就算我把代码更改之后还是一直有错误。对比了官方给的教程之后发现唯一的不同之处就是我的有一个函数的初始化是在变量的初始化之前,进行的初始化,在进行相应的知识查询之后,还有请教了师兄之后,发现了自己以前一直没有注意到的问题就是,函数的初始化必须放到变量的初始化之后,否则在使用keil也就是MDK进行建立工程的时候就会报错。 注意细节
[单片机]
STM32<font color='red'>串口</font>中断实验总结<font color='red'>函数</font>的<font color='red'>初始化</font>必须在变量的<font color='red'>初始化</font>之后
s3c2440串口调试函数
#include 2440addr.h #include stdarg.h #include string.h #include stdlib.h #include stdio.h #include ctype.h #define TXD0READY (1 2) #define RXD0READY (1) #define UART_CLK 50000000 // UART0的时钟源设为PCLK #define UART_BAUD_RATE 115200 // 波特率 #define UART_BRD ((UART_CLK / (UART_BAUD_RAT
[单片机]
S3C2440 初始化时钟
一、S3C2440 时钟 1、时钟树 从s3c2440的技术手册的时钟树可以了解到,它的时钟分四大块FCLK,HCLK,PCLK,UCLK。FCLK主要用于CPU的运行时钟,HCLK主要用于内存控制器,中断控制器等一些高速设备的时钟,PCLK主要用于GPIO控制器,I2C控制器等一些较低速设备的时钟,UCLK主要给USB控制器提供时钟的。时钟树如下图: 2、S3C2440支持的时钟速率 1、S3C2440的最高速率:FCLK最高支持400MHz,HCLK最高支持136MHz,PCLK最高支持68MHz。 2、在本实验将 FCLK设置为400MHz,HCLK设置为100MHz,PCLK设置为50MHz。 二、设
[单片机]
<font color='red'>S3C2440</font> <font color='red'>初始化</font>时钟
s3c2440 nandflash 初始化
1.什么是 nandflash ? FLASH闪存 闪存的英文名称是 Flash Memory ,一般简称为 Flash ,它属于内存器件的一种,是一种非易失性( Non-Volatile )内存。   NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且像磁盘一样可以通过接口轻松升级。 flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的
[单片机]
<font color='red'>s3c2440</font> nandflash <font color='red'>初始化</font>
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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