其他分享
首页 > 其他分享> > S5PV210学习笔记——(4) 串口

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

作者:互联网

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 程序

 

 

标签:printf,5.4,S5PV210,串口,FIFO,笔记,寄存器,模式
来源: https://blog.csdn.net/m0_57198657/article/details/120606492