MSP430学习笔记:UART
串通可以两种方法其现 一、USART硬件直接实现 二、通过定时器软件实现 该模块可现现: UART异步串行通讯 SPI同步串行通讯 I2C同步串行通讯 UxCTL控制寄存器 7:PENA 6:PEV 5:SPB 4:CHAR 3:LISTEN 2:SYNC 1:MM 0:SWRST PENA 校验允许位 0 校验禁止 1 校验允许 校验允许时,发送端发送校验,接收端接收该校验,地址位多机模式中,地址位包含校验操作. PEV 奇偶校验位,该位在校验允许时有效 0 奇校验 1 偶校验 SPB 停止位选择.决定发送的停止位数,但接收时接收器只检测1位停止位. 0 1位停止位 1 2位停止位 CHAR 字符长度 0 7位 1 8位 LISTEN 反馈选择.选择是否发送数据由内部反馈给接收器 0 无反馈 1 有反馈,发送信号由内部反馈给接收器 SYNC USART模块的模式选择 0 UART模式[异步] 1 SPI模式[同步] MM 多机模式选择位 0 线路空闲多机协议 1 地址位多机协议 SWRST 控制位 上电时该位置位,此时USART状态机和运行标志初始化成复状态(URXIFG=0,URXIE=0,UTXIE=0,UTXIFG=1)。所有受影响的逻辑保持在复位状态,直至SWRST复位。也就是说一次系统复位后,只有对SWRST复位,USART才能重新被允许。而接收和发送允许标志URXE和UTXE不会因SWRST而更改。 SWRST位会使URXIE、UTXIE、URXIFG、RXWAKE、TXWAKE、RXERR、BRK、PE、OE及FE等复位。 在串行口使用设置时,这一位起重要的作用。一次正确的USART模块初始化应该是这样设置过程的:先在SWRST=1时设置,设置完串口后再设置SWRST=0;最后如需要中断,则设置相应的中断使能。 UxTCTL发送控制寄存器 6:CKPL 5:SSEL1 4:SSEL0 3:URXSE 2:TXWAKE 0:TXEPT CKPL时钟极性控制位 0 UCLKI信号与UCLK信号极性相同 1 UCLKI信号与UCLK信号极性相反 SSEL1、SSEL0时钟源选择,此两位确定波特率发生器的时钟源 0 外部时钟UCLKI; 1 辅助时钟ACLK 2 子系统时钟SMCLK 3 子系统时钟SMCLK URXSE 接收触发沿控制位 0 没有接收触发沿检测 1 有接收触发沿检测 TXWAKE 传输唤醒控制 0 下一个要传输的字符为数据 1 下一个要传输的字符是地址 TXEPT 发送器空标志,在异步模式与同步模式时是不一样的。 0 正在传输数据或者发送缓冲器(UTXBUF)有数据 1 表示发送移位寄存器和UTXBUF空或者SWRST=1 URCTL接收控制寄存器 7:FE 6:PE 5:OE 4:BRK 3:URXEIE 2:URXWIE 1:RXWAKE 0:RXERR FE 帧错误标志位 0 没有帧错误 1 帧错误 PE 校验错误标志位 0 校验正确 1 校验错误 OE 溢出标志位 0 无溢出 1 有溢出 BRK 打断检测位 0 没有被打断 1 被打断 URXEIE 接收出错中断允许位 0 不允许中断,不接收出错字符并且不改变URXIFG标志 1 允许中断,出错字符接收并且能够置位URXIFG URXWIE 接收唤醒中断允许位,当接收到地址字符时,该位能够置位URXIFG,当URXEIE=0,如果接收内容有错误,该位不能置位URXIFG。 0 所有接收的字符都能够置位URXIFG 1 只能接收到地址字符才能置位URXIFG RXWAKE 接收唤醒检测位。在地址位多机模式,接收字符地址位置位时,该机被唤醒,在线路空闲多机模式,在接收到字符前检测到URXD线路空闲时,该机被唤起,RXWAKE置位。 0 没有被唤醒,接收到的字符是数据 1 唤醒,接收的字符是地址 RXERR 接收错误标志位 0 没有接收错误 1 有接收到错误 UxBR0、UxBR1波特率选择寄存器 这两个寄存器是用于存放波特率分频因子的整数部分。 UxBR0波特率选择寄存器0 UxBR1波特率选择寄存器1 UxMCTL波特率调整控制寄存器 M7 M6 M5 M4 M3 M2 M1 M0 若波特率发生器的输入频率BRCLK不是所需波特率的整数倍,带有一小数,则整数部分写UBR寄存器,小数部分由调整寄存器UxMCTL的内容反映。波特率由以下公式计算: 波特率=BRCLK/(UBR+(M7+M6+…M0)/8) URXBUF接收数据缓存 接收缓存存放移位寄存器最后接收的字符,可由用户访问。读接收缓存可以复位接收时产生的各种错误标志、RXWAKE位和URXIFGx位。如果传输7位数据,接收缓存内容右对齐,最高位为0。 当收接和控制条件为真时,接收缓存装入当前接收到的字符。 当接收和控制条件为真时接收数据缓存结果 UTXBUF发送数据缓存 发送缓存内容可以传至发送移位寄存器,然后由UTXDx传输。对发送缓存进行写操作可以复位UTXIFGx。如果传输出7位数据,发送缓存内容最高为0。 关于波特率: 分频因子N分频计数器时钟BRCLK N= BRCLK/波特率 UBR为UXBR0 中16位数据 MX为调整数据 波特率 = BRCLK/N=BRCLK/UBR+(M7+M6+…….M0)/8 如:BRCLK = 32.768KHZ 要产生2400HZ波特 32768/2400=13.65 则UXBR0为13 调整是8位的:0.65x8=5,所以有5个1,3个0写时最好差开 01101011 简单例子: #include <msp430f2274.h> while(1) void DisplayCharacter(char array[], char size){ |
MSP430学习笔记:UART的更多相关文章
- msp430学习笔记-msp430g2553
C语言例程:http://wenku.baidu.com/link?url=49JzNSvt3m0fRuf8SWTEM8yEw1yzqr4lBR-QbX8FddcmjTVYnDhuR97wB60HNf ...
- [SAM4N学习笔记]UART的使用
一.准备工作: 将上一节搭建的工程复制一份,命名为"3.uart".这一节主要讲如何使用SAM4N的UART功能,实现串口的收发. 二.程序编写: 细心看数据手册的朋友也 ...
- msp430学习笔记-实现开方log等计算及FFT算法(待续)
MSP430 FFT算法实现 http://bbs.21ic.com/icview-391532-1-1.html http://blog.sina.com.cn/s/blog_6cd2030b010 ...
- msp430学习笔记-USART
本文引用:http://bbs.ednchina.com/BLOG_ARTICLE_3013784.HTM MSP430F149有两个USART通讯端口,其性能完全一样,每个通讯口可通过RS232和R ...
- msp430学习笔记-ADC12
本文引用:http://bbs.ednchina.com/BLOG_ARTICLE_3013748.HTM MSP430单片机的ADC12模块是一个12位精度的A/D转换模块,它具有高速度,通用性等特 ...
- msp430学习笔记-时钟及延时函数
引用:http://blog.chinaunix.net/uid-24343357-id-3271380.html MCLK默认时钟源是DCOCLK,SMCLK默认时钟源也是DCOCLK,DCOCLK ...
- msp430学习笔记-IO及低功耗
引用:http://bbs.ednchina.com/BLOG_ARTICLE_3013511.HTM MSP430F149有6个8位的IO口,其中P1,P2口占两个中断向量,共可以接16个中断源.还 ...
- msp430学习笔记-DAC12
MSP430F169 的DAC12 模块有2 个DAC 通道,并且可以用DAC12GRP控制位将多个DAC12通道组合起来,实现同步更新,硬件还能确保同步更新独立于任何中断或者NMI事件. DAC12 ...
- msp430学习笔记-TA
定时器,CCR2,CCR1三者共用一个中断向量 定时器A是一个16位的定时/计数器.它有3个捕获/比较寄存器:能支持多个时序控制.多个捕获/比较功能和多个PWM输出:有广泛的中断功能,中断可由计数器溢 ...
随机推荐
- ios 模拟器不显示系统版本了,后边都是 uuid 了,怎么弄回来?系统升级xcode6.4,模拟器找不到选择了?
当我用El Capitan Beta 下 Xcode6.4版本时候出现了问题 常用的Scheme 选择版本不见了 而在Xcode 7.0 beta 6中显示有 简直就是坑,经过查资料其实是一个bug ...
- 原!!jar包 --可执行exe文件--安装包
这几天由于部门统计名单,都是一边报,一边统计,感觉麻烦,写了个小工具,做成安装包.其他不多说,网上都有,我就自己按照网上操作,碰到了一些问题,对这些问题说下. ----------废话少说------ ...
- 如何浏览并管理 Outlook 邮件?
当你的邮件多起来的时候你就不得不考虑这个问题了,如何处理各种邮件? 如何浏览并管理 Outlook 邮件? 待续~
- 支持向量机(SVM)算法
- div被object覆盖的解决办法
代码: <div id="contextmenu" style="width: 120px; height:120px;DISPLAY: none; top: 26 ...
- 用Gen8服务器来学习虚拟化ESXI
虚拟化和云计算是这几年的热门技术,VMware公司是虚拟化的领头羊,小坦克我有幸在VMware从事这方面的测试工作. 本系列将会讲述我学习虚拟化的一些经历. 将会覆盖一些虚拟化产品: 比如:VMwar ...
- Windows下Apache的优化
(1)首选查看apache的工作模式 windows下的查看apache的工作模式命令: httpd -l 如果列出mod_win32.c,则表示是 win32.c 工作方式. 列出的全部内容如下所示 ...
- log4net.redis+logstash+kibana+elasticsearch+redis 实现日志系统
前端时间写了个随笔 log4net.NoSql +ElasticSearch 实现日志记录 ,因项目原因需要把日志根java平台的同事集成采用logstash+kibana+elasticsearch ...
- docker 会这些也够
$ sudo systemctl start docker $ sudo systemctl stop docker $ sudo systemctl restart docker If you wa ...
- Node.js 全局对象
JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可 以在程序的任何地方访问,即全局变量. 在浏览器JavaScript 中,通常window 是全 ...