S3C2440 UART/串口(一)

发布者:Chanhero最新更新时间:2020-06-11 来源: eefocus关键字:S3C2440  UART  串口 手机看文章 扫描二维码
随时随地手机看文章

串口:


作用:【1:打印调试信息 2:外接GPS,蓝牙等各种模块】


1:TTL/CMOS逻辑电平下5v对应逻辑‘1’,0v对应逻辑‘0’。在空闲时TX RX 保持高电平。

2:RS--232逻辑电平,通常情况下ARM芯片串口输出为TTL电平,需要通过电平转换芯片才能够将TTL电平转换成232电平。

 

串口发送需要满足一下几点:


发送,接收双方约定好1:波特率: 2:双方约定好数据格式【数据位,停止位,校验位,流控】


串口如何发送1Byte数据比如:‘A’


'A' 0X41 ,01000001


1:双方约定好波特率【比如都是 115200】


2:数据格式保持统一


3:原来数据线上是高电平ARM将数据线拉低并保持1BIT时间。


4:PC在低电平开始处进行计时。


5:ARM根据数据驱动TXD线上的电平变换依次发送出数据。


6:PC在数据位的中间读取引脚的状态


S3C2440串口学习总结:


学习嵌入式代码应该来源与手册,用手册和C语言基础来写出程序。


首先来初始化串口:根据上述知识想要正常的使用串口,需要配置引脚复用为串口,设置设备波特率,设置数据格式。


1:配置设备IO口为串口功能:

GPHCON配置寄存器:

通过配置GPHCON寄存器中的【7:6】【5:4】这四位可以将GPH2 GPH3设置成TXD0 和RXD0.

代码:


GPHCON &=~((3<<4)|(3<<6));//首先在保证其他位不变的情况下将4 5 6 7位清0


GPHCON |=~((2<<4)|(2<<6));//配置


串口在空闲状态时TXD0应该处于高电平,所以应该应该设置GPH2内部上拉。


代码:


GPHUP &=~((1<<2)|(1<<3));//使能内部上拉 详细可查看串口时序要求


2:设置波特率

代码:


/*


UBRDIVn = (int)( UART clock / ( buad rate x 16) ) –1


UART clock=50M


UBRDIVn = (int)( 50000000/ (115200 x 16) ) –1 UBRDIVn=26//存在误差这点算出来的值可以进行四舍五入


*/


UCON=0X00000005;/*PCLK,中断/查询模式*/


UBRDIV0=26;


3:设置数据格式

代码:


ULCON0=0X00000003;


通过配置这几个寄存器设备的串口就可以正常使用了。


4:串口发送一个字节数据

在串口发送一字节数据之前要确保UTX0寄存器中数据已经发送完成,通过检查UTRSTAT0寄存器中的第二位就可以知道数据是否发送完成。当没有发送完成时该位为1。通过代码while(!(UTRSTAT0 &(1<<2));便可以判断前一个数据是否发送完成。


代码:


int putchar(int c)


{


/*


UTRSTAT0 UART channel 0 Tx/Rx status register


1 = Transmitter (transmit buffer & shifter register) empty


*/


while(!(UTRSTAT0 &(1<<2));//判断前一个数据是否发送完成


/*UTXH0*/


UTXH0=(unsigned char)c;


}


4:串口接收一字节数据


代码:


int puts(const char *s)


{


while(*s!='')


{


putchar(*s);


s++;


}


}

关键字:S3C2440  UART  串口 引用地址:S3C2440 UART/串口(一)

上一篇:S3C2440开发板的学习使用(一)----串口的安装
下一篇:(二)s3c2440——串口实验

推荐阅读最新更新时间:2024-11-14 04:09

内存管理单元 MMU
内存管理单元(Memory Management Unit)简称 MMU,它负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查。现代的多用户多进程操作系统通过 MMU 使得各个用户进程都拥有自己独立的地址空间:地址隐射功能使得各进程拥有“看起来”一样的地址空间,而内存访问权限的检查可以保护每个进程所用的内存不会被其他进程破坏。 S3C2440 MMU地址变化过程 地址的分类 以前的程序是非常小的,可以全部装入内存中。随着技术的发展,出现了一些两种情况。 有的程序很大,它所需求的内存空间超过了内存总容量,不能一次性装入内存; 系统中有很多程序需要同时执行,它们要求的内存空间超过了内存总容量,不能把所有程序
[单片机]
内存管理单元 MMU
S3C2440 2440init.s分析第二篇(一)
S3C2440 2440init.s分析第二篇(一) ;========================================= ; NAME: 2440INIT.S ; DESC: C start up codes ; Configure memory, ISR ,stacks ; Initialize C-variables ; HISTORY: ; 2002.02.25:kwtark: ver 0.0 ; 2002.03.20:purnnamu: Add some functions for testing STOP,Sleep mode ; 2003.03.14:D
[单片机]
s3c2440裸板_中断体系结构
S3C2440一共有60个中断源,其中有15个子中断源,它们与SUBSRCPND寄存器中的每一位相对应,其他45个中断源与SRCPND中的每一位相对应。要注意的是EINT4~7对应的是同一位SRCPND ,而EINT8~23对应的也是SRCPND 一位 1 S3C2440的中断寄存器 中断分两大类:外部中断和内部中断。 1.1 外部中断寄存器 24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。具体可参考datesheet数据手册。 寄存器: EXTINT0-EXT
[单片机]
<font color='red'>s3c2440</font>裸板_中断体系结构
STM32CUBEIDE----配置输出串口中文和文本大小
概述 TM32CubeIDE是一体式多操作系统开发工具,是STM32Cube软件生态系统的一部分。 STM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。 STM32CubeIDE集成了STM32CubeMX的STM32配置与项目创建功能,以便提供一体化工具体验,并节省安装与开发时间。在通过所选板卡或示例选择一个空的STM32 MCU或MPU,或者预配置微控制器或微处理器之后,将创建项
[单片机]
STM32CUBEIDE----配置输出<font color='red'>串口</font>中文和文本大小
2440裸机程序——串口收发数据
工程当中需要添加 S3C2440A.s ;2440lib.c;main.c;uart0.c 这四个程序。 主程序: /********************************************************************************************* * File name: main.c * Author: ZXL * Description: 在PC机通过串口0向终端发送一行字符(以回车键结束),开发板接收串口数据后,保存在数组中,再传回到PC端,通过终端回显。 * History: 2013.5.8 *******************************
[单片机]
解析工程师所熟知的CAN、UART、IIC、USB等协议解码
随着硬件架构的不断更新,示波器早已不是只能“示波”的仪器了,协议解码就是典型代表!IIC、SPI、UART、CAN、LIN…我们为ZDS系列示波器最多免费配备了37种协议解码分析插件,这么多协议分别用在哪些地方,具体又如何使用呢? 示波器从模拟示波器发展到数字示波器,带来了许多大的改变,例如信号采集、带宽、采样率、屏显等。同样,这样的改变也体现在“协议解码”上,新的解码方式将人们从“0”,“1”的世界中解放出来,大大提高了工作效率。 最初的示波器只是一个简单的波形显示兼数据测量,而我们需要获取协议波形深层次的含义,从而去了解通信的数据正常传输。例如:观察IIC协议,我们需要按照时钟与数据信号一位一位对应,去进行0/1的组合转换,
[汽车电子]
解析工程师所熟知的CAN、<font color='red'>UART</font>、IIC、USB等协议解码
STM32学习笔记:串口一键下载电路(CH340)的理解
如图:为原子的串口下载电路 在CH340的数据手册上有引脚的介绍以及作用: 这两个引脚:DTR#和RTS#都是 输出类型, MCUISP(一键下载工具),会控制CH340这两个引脚的高低电平状态,通过控制DTR#和RST#这两个引脚的高低电平状态,从而控制STM32的BOOT0 和 RESET. 用万用表测量可知,DTR#、RST#初始状态的时都是高电平,在启用下载的时候,DTR#维持高,RST#拉低,此时两个三极管Q2 和Q3 导通,那么BOOT0 为高电平,RESET为低电平复位,然后DTR#变低,Q2不导通,复位结束,此时BOOT0 为高电平。由启动模式 可知,stm32的启动模式变为从系统存储器启动,启用串口
[单片机]
STM32学习笔记:<font color='red'>串口</font>一键下载电路(CH340)的理解
如何使用串口来给GD32烧写程序
话说本人使用的是GD32F103VCT6(或GD32F103VET6),采用SWD烧写的方式,确实一直用的好好的。但是,量产的多少,总会出现一些意想不到的情况,比如引出SWD烧写口的焊盘脱落了,或者因为静电等原因造成SWD无法烧录,又或者是出现“Programming error@:0x00000000”的情况。这个时候,只是一味地采用SWD烧写的方式,就有点无能为力了。 众所周知,可以使用串口给STM32烧写程序,只需设置成Boot0=1,Boot1=0,使用flash_loader_demonstrator这个小工具即可。那么,GD32是否也可以这么做呢?查看了电路图,我的电路板刚好USART1页引出来了。马上去试试呗。
[单片机]
如何使用<font color='red'>串口</font>来给GD32烧写程序
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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