7-S5PV210串口配置介绍.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
今天,主要内容为7_S5PV210学习_配置串口: 配置串口 好期待串口啊...O(一直都是2.54mm的插针,用的这个板子是2.0的插针, 我的好多设备都不能上,包括我最喜欢用的LCD1602...写个程序看看效果那叫费劲啊! 说明:串口是什么我不想说了,英文名字简写UART... 关于S5PV210的串口还是要说一说,共有四个串口,波特率最高3Mbps。 每个串口都有属于自己的两个接收、发送缓冲区(FIFO),其中,UART0的256Byte(字节),UART1为64Byte,UART2和UART3为16Byte。 S5PV210的波特率可编程,可以设置具有1个或者2个停止位,可以设置有无校验位,可以设置5bit、6bit、7bit、8bit的数据宽度。 S5PV210的每一个串口包含一个波特率发生器,一个发送和接收的控制单元。而波特率发生器的时钟源为PCLK”或者SCLK_UART”。 S5PV210接收和发送都有一个移位寄存器,用于临时存储要发送或者接受的数据,在使用FIFO的情况下,数据会自动从FIFO进入这两个区域,如果不使用FIFO,数据可直接写入或者读出移位寄存器。本图在数据手册P854。 第一部分 配置串口 串口时钟配置 你没有看错,上来第一件事情就是时钟... 呵呵...如果前面的时钟配置基础内容看的好,我保证,这部分就是So Easy啊... 没得说,第一件事,当然是要找一个工作的串口了! 我的这个板子的串口1使用起来特别方便,所以我就选择用这个了, 其他的串口配置方法也都差不多,强烈建议读者朋友用其他的串口。 首先,我们要找到时钟源,上火,SCLK_UART的设置这么麻烦...我还是用PCLK吧。 用SCLK_UART还是PCLK的设置是在UCNn[10]设置的。我们怎么知道的?看图啊。 PCLK时钟频率是由前面的时钟配置部分设置的,我们在前面已经进行配置了,就是那个PCLK_PSYS,还记得PSYS domain吧?这个是外设时钟域哦~ 现在回到时钟配置那一个部分,看一看PCLK在哪里,要如何配置。 PCLK时钟配置 上一节时钟配置部分已完成,用的是50MHz...的。就是那个PCLK_PSYS了。 串口时钟配置 我们选好PCLK作为时钟输入,要通过UCONn[10]的设置。 我们配置串口1,应该设置UCON1[10] 先看看UCON寄存器到底是用来做什么的。从名字我们可以猜出大概,UART Configure. 默认值0,而0正好 表示时钟源是PCLK,那么没有什么犹豫的,我们就不用管它了,呵呵,暂时这样就行。 2、波特率设置 没得说,我们就要115200了.. 关键是如何配置呢?通过寄存器UDIVSLOTn,同样的,我的要设置的是UART1,所以就要配置UDIVSLOT1了,我想到这里后,一般人都应该明白独立串口是什么意思了... 先看一个手册P879的公式。说实话,我就特别不理解三星的这个设置方法是怎么来的! DIV_VAL = UBRDIVn + (num of 1s in UDIVSLOTn)/16 DIV_VAL = (PCLK / (bps X 16)) - 1 or DIV_VAL = (SCLK_UART / (bps X 16)) ? 1 假如: 这里的PCLK是50MHz,bps是115200,DIV_VAL = 26.13 这样,我们就得出 UBRDIV1 = 26,而 (num of 1s in UDIVSLOTn)/16 = 0.13 (num of 1s in UDIVSLOTn) = 0.13 X 16 = 2.03 这样,我们就可可以设置UDIVSLOT1寄存器了,给它的值,对它来说没有什么意义,只要有2个1可以了,也就是说,我可以设置为3或者5或者6,只要转化成二进制后带有两个1就可以了!记得总位数不能超过16bit 哦!!我这里就设置为 3好了。 最终得出,在PLCK=50M的情况下,UBRDIV1 = 26,UDIVSLOT1 = 3,就得出波特率115200. 纠错,在我写完这篇文章之后调试程序时候发现,如果只是取两个1,串口将不能工作,最后我改成3个1之后才好用的!其实,这个不能怪我,我真的没有弄明白S5PV210的串口的这两个值是如何设置的,不过,最后还是让我找到原因了! 3、串口数据格式 我们串口要工作在正常模式,无奇偶校验,一个停止位,8Bit的数据长度。 有了这个想法,就要找到数据格式的配置寄存器。ULCONn,数据手册P867. 按照寄存器的配置,0x03即可。 4、串口工作模式 呵呵...这个其实是我取得名字,我的意思是让串口利用FIFO工作! 这个寄存器在手册P871,设置为1将开

文档评论(0)

***** + 关注
实名认证
文档贡献者

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档