- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.波特率控制寄存器UxBAUD 位 名称 复位 R/W 描述 7:0 BAUD_M[7:0] 0x00 R/W 波特率小数部分的值。BAUD_E和BAUD_M决定了UART的波特率和SPI的主SCK时钟频率 2.2 串口控制器的特殊功能寄存器SFR 2.3 波特率产生 当运行UART模式时,内部的波特率发生器设置UART波特率。当运行在SPI模式时,内部的波特率发生器设置SPI主时钟频率。 波特率由寄存器UxBAUD.BAUD[7:0]和UxGCR.BAUD_E[4:0]定义,该波特率用于UART传送,也用于SPI传送的串行时钟速率。 F是系统时钟频率,等于16MHzRCOSC或者32MHzXOSC 标准波特率所需的寄存器值 波特率(bps) UxBAUD.BAUD_M UxGCR.BAUD_E 误差(%) 2400 59 6 0.14 4800 59 7 0.14 9600 59 8 0.14 14400 216 8 0.03 19200 59 9 0.14 28800 216 9 0.03 38400 59 10 0.14 57600 216 10 0.03 76800 59 11 0.14 115200 216 11 0.03 230400 216 12 0.03 该表适用于典型的32MHz系统时钟 //设置波特率为57600 U0GCR |= 10; U0BAUD |= 216; 2.4系统时钟设置 波特率发生器的时钟是从所选的主系统时钟源获得的,主系统时钟源可以是32MHz XOSC或16MHz RCOSC。通过CLKCONCMD.OSC位可选择主系统时钟源 CLKCONCMD = ~0x40;//设置时钟晶振为32MHZ while(!(SLEEPSTA (16))); /*等待晶振稳定*/ CLKCONCMD = ~0x07; 1. UART总线资源 数据手册P72 表7-1 外设I/O引脚映射 串口0同步模式: 串口0异步模式: 串口1同步模式: 串口1异步模式: 2.5 UART资源 位 名称 复位 R/W 描述 7 —— 0 R0 没有使用 6 T1CFG 0 R/W 定时器1的I/O位置 0:备用位置1 1:备用位置2 5 T3CFG 0 R/W 定时器3的I/O位置 0:备用位置1 1:备用位置2 4 T4CFG 0 R/W 定时器4的I/O位置 0:备用位置1 1:备用位置2 3:2 - 00 R0 没用使用 1 U1CFG 0 R/W USART 1的I/O位置 0:备用位置1 1:备用位置2 0 U0CFG 0 R/W USART 0的I/O位置 0:备用位置1 1:备用位置2 2.相关特殊功能寄存器 (1)PERCFG:设置各设备IO口位置在P0还是P1; 在P0口 在P1口 (2)P2DIR: 当PERCFG所设定的设备IO位置冲突时,由该sfr决定位置到底归属于单个控制器。 位 名称 复位 R/W 描述 7:6 PRIP0[1:0] 0 R/W P0口外设优先级控制。当PERCFG分配给一些外设到相同引脚的时候,这些位将确定优先级。详细优先级列表: 00:第1优先级:USART?0?;第2优先级:USART?1?; 第3优先级:定时器1 01:第1优先级:USART 1 ;第2优先级:USART 0 ; 第3优先级:定时器1 10:第1优先级:定时器1通道0-1 ;第2优先级:USART 1 ; 第3优先级:USART 0 ;第4优先级:定时器1通道2 –3 11:第1优先级:定时器1通道2-3 ;第2优先级:USART 0 ; 第3优先级:USART 1 ;第4优先级:定时器1通道0 –1 5 —— 0 R0 没有使用 4:0 DIRP2_[4:0] 00000 R/W P2_0到P2_4的I/O方向 (3)PxSEL:置管脚功能为设备模式 (4)UxCSR[7]:设置uart还是spi模式; 以上4个sfr的正确设置可以完成我们的uart的总线初始化; 2.6中断标志位 1.UART发送 当USART 收/发数据缓冲器、寄存器UxDBUF 写入数据时,该字节发送到输出引脚TX。当USART 发送缓冲寄存器为空时,准备接收新的发送数据时,就会由硬件置对应的中断标志位UTXxIF为1。 如果我们要通过串口0发送字符’h’,则该如下操作: void uart0_send_byte(char tmp)
文档评论(0)