前军教程网

中小站长与DIV+CSS网页布局开发技术人员的首选CSS学习平台

嵌入式arm开发学习第四天(嵌入式arm实战项目)

嵌入式学习第四天

知识点补充:

SP3232E 是一款UART电平转换芯片,实现TTL电平和EIA电平之间转换

TTL电平:处理器一开始发出的电平信号

数字1电平:1.8v~3.3v

数字0电平:0v~1.4v

EIA电平:串口线上的电平(适合远距离传输)

数字1电平:-3v~-15v

数字0电平:3v~15v

UART串口实际使用步骤:

以三星s5p6818为例,打开芯片手册,查看UART相关内容,得到相关硬件信息

S5P6818支持6个UART,目前使用UART0

每个UART控制器内部支持2个64子节的FIFO缓冲区,分别用于暂存接收和发送的数据

每个UART控制器内部还包含一个发送器、接收器和波特率产生器

发送器又包含一个发送缓冲区寄存器和发送移位器

接收器又包含一个接收缓冲区寄存器和接收移位器

波特率产生器负责给发送移位器和接收移位器产生一个波特率,波特率产生器由UART控制器的时钟源决定

查看UART控制器发送和接收数据原理图,得到:

发送数据流程:

cpu以指针的形式将数据放到发送缓冲区,UART控制器自动将发送缓冲区的数据放到发送移位器,发送移位器自动将数据一位一位放到TX数据线上,发送数据的速度由UART控制器时钟源决定

接收数据流程:

接收移位器自动从RX数据线上一位一位将数据接收,接收移位器自动将数据拷贝到接收缓冲区中暂存,cpu以指针的形式从接收缓冲区中读取数据

波特率配置公式:

UBRDIV0+UFRACVAL0/16=(SCLK_UART/(bps*16))-1

"bps":波特率

SCLK_UART:时钟源

如:SCLK_UART为40MHz,波特率为115200

UBRDIV0+UFRACVAL0/16=(40000000/(115200*16))-1 = 20.7

UBRDIV0=20(取整)

UFRACVAL0=0.7*16=11(取整)

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言