S5PV210学习笔记——(4) 串口

本文详细介绍了S5PV210处理器中串口通信的原理和应用,包括UART和USART的区别、电平信号类型以及串口的FIFO和DMA模式。重点讨论了串口的常用寄存器,如线控制、控制、FIFO控制等,并讲述了stdio的移植,特别是printf函数的底层实现和putc函数在串口输出中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UART:异步、串行、查分;USART:同步

电平信号:

       RS232:-3~-15v为1,+3~+15为0;抗干扰距离远

       TTL:+5v为1,0v为0,距离近不抗干扰,多用于电路内部或15m以内

串口中有个Transmit Buffer 寄存器,这个一会儿和FIFO一起说;还有个波特率发生器,它由时钟源为基础而产生。流控是有一根流控线,在发送机、接收机二者之间相连,每完成一个位的发送或者接收,就控制流控线改变,从而告知对方接受完成可以接受下一位数据了,一般在二者的速率不一样时使用。

串口的其他功能模式:

① FIFO(FIRST IN FIRST OUT)模式,在上图中,非FIFO模式下每次只能传一个字节的数据,传完之后需要重新想buffer里面写新的一个字节;而开启FIFO后,可以一次性向buffer发送多个字节,再传输,就不用多次只传一个字节时的跳转开销了

② DMA:direct memory access,直接内存访问,在交换数据时,由硬件自己完成,避免了占用CPU,对比FIFO,FIFO是轻量级的,而DMA可以自己指定一段内存,直接从内存向外发,只要内存大小允许,可以指定很大的缓存空间。在stm32的学习过程里面,做过相关的实验。

③ IrDA模式(Infra-Red红外线),以有无红外信号来判断0和1

各个串口通道对应的功能如下图,

5.4.1 常用寄存器

5.4.1.1 串口线控制寄存器

       选择串口模式(红外模式还是普通模式,一般是用普通模式);奇偶校验位;停止位的位数;发送的数据长度

5.4.1.2 串口控制寄存器

串口中控制时钟选择、收发中断方式、FIFO模式下的超时中断、异常状态的中断使能等

 

5.4.1.3 FIFO控制寄存器

       控制FIFO的缓存大小、使能等

5.4.1.4 UART modem control register

       看起来是控制流控相关的东西

 

5.4.1.5 收发缓存寄存器

里面用来放将要发送的数据,或者放收到的数据

5.4.1.6 其他寄存器

       除了上面的几个常用寄存器,还有下表中的一些状态寄存器,中断屏蔽寄存器,波特率设置寄存器等

5.4.2 stdio移植

       Stdio:standard input output标准输入输出,在PC中标准输入是键盘,标准输出是屏幕。其中printf和scanf可以和底层的输入输出函数绑定,然后和stdio绑定,就可以用printf输出到stdio指定的输出口

       在串口的使用时,我们的输入输出都是串口

       在stm32的printf移植时,我们只知道用putc里面的输出端改成串口,而不知道printf的整个实现过程

       Printf中,主要用的两个关键函数

① vsprintf():这个函数用来格式化打印信息,得到纯字符串格式的打印信息,用来一会儿的输出

② putc():这个就是真正的输出函数,控制标准输出硬件,将信息发送出去

       Stdio库函数的应用,库函数里有个makefile作为子makefile,他的用法可以参照子makefile

这个是printf函数,const char* fmt是字符串,任何是可变参数

 

 

5.4.3 程序

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值