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输出:有广泛的中断功能,中断可由计数器溢 ...
随机推荐
- 01 Node.js简介, 安装&配置
Node.js 简介 Node.js 是什么 Node.js 有着强大而灵活的包管理器(node package manager,npm) 目前, 已经有强大第三方工具模块, 例如数据库连接, 网站开 ...
- AS3绘制扇形算法解析
网上有很多使用AS3画一个扇形的方法,但是却一个都没有解释这个函数是如何运作来画出扇形的,下面浅谈下我对这个函数的理解. 首先上代码,代码来自http://blog.csdn.net/weiming8 ...
- .NET 4.5 WPF Ribbon
文/嶽永鹏 Visual Studio 2012 DO.NET 4.5 Ribbon 界面编程. 代码 =============================================== ...
- python中元组(tuple)的用法
t=(1,2,3) t=() t=(1,)#元组中只有一个值,需在值后面加上,不然会当int型识别 te.count(1) te.index(2) te[::-1]#关于切片跟列表一样的 tuple的 ...
- ABAP之声母韵母
我们一开始上学的时候,老师最先教的是什么? 拼音,声母,韵母,声调等等. 那么ABAP里什么是这些东西呢? 基础的数据类型,已经数据字典里的东西:域,数据元素,结构,视图,表,搜索帮助,锁... 数据 ...
- sans-serif
sans-serif无衬线字体,是一类字体,它在操作系统或者浏览器里是可以设置的,你可以把它设置成宋体,也可以设置成微软雅黑,而设置的这种字体肯定是当前系统里存在的字体,所以使用这个字体就一肯能显示出 ...
- mybaties 查询 语句正确 但是查不到结果
控制台输出的语句拿到数据库查询就有数据,但是一直显示不出来 也不报错 后来 百度发现数据库连接不对 因为其中引用了两个数据库 所有写混了 ---------------------- ...
- mybaits入门
1.回顾jdbc开发 orm概述 orm是一种解决持久层对象关系映射的规则,而不是一种具体技术.jdbc/dbutils/springdao,hibernate/springorm,mybaits同属 ...
- Create Linked Server SQL Server 2008
From:http://www.jensbits.com/2010/11/10/create-linked-server-sql-server-2008/ http://www.c-sharpcorn ...
- hdu 1041 (OO approach, private constructor to prevent instantiation, sprintf) 分类: hdoj 2015-06-17 15:57 25人阅读 评论(0) 收藏
a problem where OO seems more natural to me, implementing a utility class not instantiable. how to p ...