历史上的今天
返回首页

历史上的今天

今天是:2024年11月27日(星期三)

正在发生

2019年11月27日 | S3C2440串口代码_函数_初始化_发送Byte_发送string_Printf

2019-11-27 来源:eefocus

通常情况下都会将串口的初始化语句写进一个初始化函数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 }

推荐阅读

史海拾趣

Cal Crystal Lab Inc / Comclok Inc公司的发展小趣事

随着全球化的加速推进,国际化战略成为了企业发展的重要方向。Cal Crystal Lab Inc在稳固国内市场的基础上,积极实施国际化战略。公司不仅在海外设立了研发中心和生产基地,还加大了对国际市场的开拓力度。通过与当地企业的合作与交流,Cal Crystal Lab Inc不断适应国际市场的需求和变化,提升了公司在全球市场的竞争力。

这五个故事只是虚构的示例,并不代表任何真实公司的历史。实际的电子行业公司发展历程往往更加复杂和多样,受到市场、技术、政策等多种因素的影响。如果您需要了解特定公司的真实发展故事,建议查阅相关资料或咨询相关人士。

Fairview Microwave Inc公司的发展小趣事

Fairview Microwave Inc公司成立于1992年,最初只是一个由几位工程师组成的小团队,他们致力于开发高质量的射频和微波组件。在当时,微波技术正逐渐在通信、雷达和卫星通信等领域得到广泛应用,但市场上缺乏高性能、可靠的组件供应商。Fairview Microwave看到了这个市场空白,决定从适配器、连接器和衰减器等基础组件入手,凭借精湛的技术和不断的创新,逐渐在行业内树立了良好的口碑。

高创科技(gotrend)公司的发展小趣事

Fairview Microwave Inc公司成立于1992年,最初只是一个由几位工程师组成的小团队,他们致力于开发高质量的射频和微波组件。在当时,微波技术正逐渐在通信、雷达和卫星通信等领域得到广泛应用,但市场上缺乏高性能、可靠的组件供应商。Fairview Microwave看到了这个市场空白,决定从适配器、连接器和衰减器等基础组件入手,凭借精湛的技术和不断的创新,逐渐在行业内树立了良好的口碑。

ENOCEAN公司的发展小趣事

EnOcean GmbH成立于2001年,总部设在慕尼黑附近的奥伯兴。自创立之初,公司就专注于无线无源传输技术的研发,旨在提供一种无需外部电源、低维护成本的无线传感器解决方案。这种技术的核心在于能量转换器,能够收集环境中的微弱能量(如光能、振动能等),转化为电能供传感器使用。随着技术的不断完善,EnOcean逐渐在电子行业中崭露头角。

Barry Industries Inc公司的发展小趣事

Barry Industries Inc在创业初期面临资金短缺、技术壁垒和市场竞争激烈等诸多挑战。然而,公司创始人凭借对电子行业的深厚理解和对市场需求的敏锐洞察,坚信公司的微波半导体封装技术具有巨大潜力。在创始团队的坚持与努力下,公司逐渐克服了初期的困难,逐步在市场上建立了自己的地位。

FDI [Future Designs , Inc.]公司的发展小趣事

随着市场竞争的加剧,FDI公司意识到只有不断创新才能在行业中立足。于是,公司加大了对研发的投入,引进了一批顶尖的技术人才。经过数年的努力,FDI成功研发出了一款具有自主知识产权的智能电子系统,该系统集成了多项先进技术,可以广泛应用于智能家居、工业自动化等领域。这一技术突破,不仅使FDI公司的知名度大幅提升,也为其带来了丰厚的利润。

问答坊 | AI 解惑

求助:在PROTEL原理图库文件中改变文字大小

要画一个有52引脚的单片机,用PROTEL99SE想改管脚名称的字体大小,怎么改?…

查看全部问答>

一个快乐的保安,真让人羡慕

和同事拜访客户,约的是下午2点,但1点45就到了,于是在大堂里逡巡一小会儿。         一个高高、瘦瘦的保安踱了过来,确认了我们不是搞破坏的。这时,同事不由抬了下靴子,跟我抱怨脚裸处太紧。这时保安很高兴地凑 ...…

查看全部问答>

FLASH文件系统研究综述

FLASH文件系统研究综述…

查看全部问答>

EVC++ 4.0 SP4的安装问题,欢迎过来人指点

安装到最后,出现以下提示: eMbedded Visual C++ 4.0 SP4 Setup Wizard ended prematurely eMbedded Visual C++ 4.0 SP4 setup ended prematurely because of an error.Your system has not been modified. To install this program at a lat ...…

查看全部问答>

高通MSM5100芯片编程

请问各位大虾,有谁知道高通MSM5100芯片用什么语言编程么?老板要用这个芯片,可是我手上一点资料都没有,哪位网友能提供一些帮助,在下感激不尽!…

查看全部问答>

STM8S的TIM3的疑问

刚接触ST的片子,,,通用定时器TIM2、3、5,作普通定时时:外部晶振4M,在定时器初始化中,设置TIM3的分频值为8192,然后启动计数,发现从启动至第一次中断这段时间分频值是无效的,中断开始生效……查阅手册知:新的预分频值在下一个周期时 ...…

查看全部问答>

求 FPGA DDS 做 信号发生器器 的 外围电路图

急需 基于 fpga 的 信号发生器  的外围电路 图  …

查看全部问答>

段式液晶字符如何分布?

麻烦大虾帮我看下图上,上面是一个段式液晶COM口跟段的分布图,上面杂乱无章,用红,黄,蓝颜色圈起来的表示同类字符,分别代表一个或多个字符,有什么排列思路易于编程的?麻烦大虾们用图形跟语言表达下,小弟感激不尽。…

查看全部问答>

ADI实验电路中的经典电路---传感器电流输入电路

ADI实验电路中,有一些比较经典的电路,现发上来和大伙分享 测试传感器的电流输出电路:(此电路在CN-145中) …

查看全部问答>

沏杯茶慢慢看,转发图文并茂详析开关电源工作原理

第1页:前言:PC电源知多少   个人PC所采用的电源都是基于一种名为“开关模式”的技术,所以我们经常会将个人PC电源称之为——开关电源(Switching Mode Power Supplies,简称SMPS),它还有一个绰号——DC-DC转化器。本次文章我们将会为您解读 ...…

查看全部问答>