MSP430的不同型号,其串行通讯工作模式是一样的。以MSP430G2553为例进行说明。MSP430G2553是20个引脚的16位单片机。具有内置的16位定时器、16k的FLASH和512B的RAM,以及一个通用型模拟比较器以及采用通用串行通信接口的内置通信能力。此外还具有一个10位的模数(A/D)转换器。这里我们详细说明MSP430G2553串口通信。其引脚排布如图1.1所示。其功能表如表1.1所示。
串行通讯模块主要由三个部分组成:波特率生成部分、发送控制器以及接收控制器。如图1.2所示。
一、UART模式
在异步模式下,接收器自身实现帧的同步,外部的通讯设备并不使用这一时钟。波特率的产生是在本地完成的。异步帧格式由1个起始位、7或8个数据位、校验位(奇/偶/无)、1个地址位、和1或2个停止位。一般最小帧为9个位,最大为13位。
(一)UART的初始化
单片机工作的时钟源来自内部三个时钟或者外部输入时钟,由SSEL1、SSEL0,以决定最终进入模块的时钟信号BRCLK的频率。所以配置串行通讯的第一步就是选择时钟。
通过选择时钟源和波特率寄存器的数据来确定位周期。所以波特率的配置是串行通讯中最重要的一部分。波特率设置用三个寄存器实现:UxBR0(选择控制器0):波特率发生器分频系数低8位。UxBR1(选择控制器1):波特率发生器分频系数高8位。UxMCTL数据传输的格式,以及数据传输的模式是通过配置控制寄存器UCTL来进行设置。
接收控制部分和发送控制部分。首先需要串行口进行配置、使能以及开启中断。串口接收数据一般采用中断方式,发送数据采用主动发送。当接收到一个完整的数据,产生一个信号:URXIFG0=1(类似于51单片机的接收中断标志位),表示接收完整的数据。当数据正在发送中,UTXIFG0=1,此时不能再发送数据,必须等当前数据发送完毕(UTXIFG0=0)才能进行发送。
二、SPI模式
USTAR下的SPI模式有如下特点:
1、SPI模式支持3线和4线模式;
2、支持主机与从机模式;
3、接受和发送有各自独立的发送移位寄存器和缓冲器;
4、接受和发送都有独立的中断能力;
5、移位时钟的极性和相位可编程;
6、字符长度可以是7位或者8位。
SPI工作在全双工下,即主机发送的同时也接收数据,传输的速率由编程决定。4线SPI模式用附加数据线,允许从机数据的发送和接收。其信号如下: SIMO:从进主出,主机模式下,数据输出;从机模式下,数据输入。SOMI:从出主进,主机模式下,数据输入,从机模式下,数据输出。UCLK:USART SPI模式时钟,信号有主机输出,从机输入。CLK时钟只能由主机提供。STE:从机模式发送接收允许控制脚,用于4线模式。
(一)SPI初始化
SPI当中不需要波特率调整,所以UxMCTL=0x0000,SPI的初始化及其复位和UART公用一套寄存器。
在初始化或者重新配置USART的SPI时,必须按照以下顺序进行:
1、UxCTL寄存器的第0位SWRST置位;
2、在SWRST置位的条件下,初始化所有的SPI寄存器,包括UxCTL寄存器;
3、通过置位模块使能寄存器MEx的URXEx和UTXEx位使能SPI的接受和发送使能模块;
4、通过软件复位UxCTL寄存器的第0位SWRST;
5、通过中断使能寄存器IEx的URXIEx和UTXIEx来使能发送和接受中断。
三、寄存器及其功能
(1)控制寄存器UxCTL
控制寄存器内的信息决定了USART的基本操作。如:选择通信协议、通信模式和校验位。在SWRST复位使USART复位操作禁止前,各位应根据选择的模式进行编程。
(2)发送控制寄存器UxTCTL(未作说明的位未用)
寄存器UxTCTL控制与发送操作相关的USART硬件。
(3)接收控制寄存器URCTL
URCTL 控制与接收操作相关的USART硬件并保存由最新写入URXBUF的字符引起的出错状况和唤醒条件。若FE、PE、OE、BRK、RXERR 或 RXWake 中的任何一位置位,通过接收下一个字符不能使其复位。它们的复位要通过访问接收缓存URXBUF、USART的软件复位SWRST、系统复位PUC或用指令修改。
(4)波特率选择寄存器和调制控制寄存器
波特率产生器利用波特率选择寄存器UxBR1和UxBR0,以及调整控制寄存器UxMCTL,来产生串行数据流的位定时。UxBR0、UxBR1这两个寄存器是用于存放波特率分频因子的整数部分,若波特率发生器的输入频率BRCLK不是所需波特率的整数倍,带有小数,则整数部分写入UxBR寄存器,小数部分则由调整寄存器UxMCT的内容反映。波特率由以下公式计算:
波特率=BRCLK/(UBR+(M7+M6+ …M0)/8)
接收缓存存放移位寄存器最后接收的字符,可由用户访问,读接收缓存可以复位接收时产生的各种错误标志、RXWAKE位和URXIFGx位。如果传输7位数据,接收缓存内容右对齐,最高位为0。当收接和控制条件为真时,接收缓存装入当前接收到的字符。
发送缓存含有当前要由发送器发送的数据。UTXIFG 标志表示UTXBUF已准备好接收下一个要发送的字符。将数据写入UTXBUF初始化发送功能。如果发送移位寄存器为空或即将为空,数据的发送立即开始。只有当UTXBUF为空时,数据才能写入缓存,否则可能发送不可预料的字符。
例子:
#include“msp430G2553.h”
#include “in430.h”
void UartPutchar(unsigned char c);
unsigned char UartGetchar();
unsigned char temp=0;
unsigned char number[2]={0};
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
BCSCTL1 = CALBC1_1MHZ; // Set DCO
DCOCTL = CALDCO_1MHZ;
P1DIR|=BIT6;
P1OUT&=~BIT6;
P1SEL = BIT1 + BIT2; // P1.1为 RXD, P1.2为TXD
P1SEL2 = BIT1 + BIT2; // P1.1为 RXD, P1.2为TXD
UCA0CTL1 |= UCSSEL_2; // 选择时钟BRCLK
UCA0BR0 = 106; // 1MHz 9600
UCA0BR1 = 0; // 1MHz 9600
UCA0MCTL = UCBRS2 + UCBRS0; // 波特率=BRCLK/(UBR+(M7+.。.0)/8)
UCA0CTL1 &= ~UCSWRST;
// 初始化顺序:SWRST=1设置串口,然后设置SWRST=0,最后设置相应中断
IE2 |= UCA0RXIE; // 使能接收中断
while(1)
{
//UartPutchar(9);
// display_int(temp,0);
__delay_cycles(10000);
}
}
/**********************************UART接收中断*************************/
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
//while (!(IFG2&UCA0TXIFG)); // 等待发送完成
//UCA0TXBUF = UCA0RXBUF; // TX -》 RXed character
temp=UCA0RXBUF;
}
/******************************UART发送字节函数*************************/
void UartPutchar(unsigned char c)
{
while(!(IFG2 & UCA0TXIFG)); //待发送为空
UCA0TXBUF=c;
IFG2 &=~UCA0RXIFG;
}
/*********************************UART接收字节数据******************/
unsigned char UartGetchar()
{
unsigned char c;
while(!(IFG2 & UCA0RXIFG)); //等待接收完成
c=UCA0RXBUF;
IFG2 &=~UCA0TXIFG;
return c;
}
/******智能控制工作室*******/
上一篇:msp430头文件分析
下一篇:基于MSP430F42x的工业信号产生与测量仪表的设计
推荐阅读
史海拾趣
作为一家在电子行业中具有影响力的企业,Directed Energy Inc深知自己肩负的社会责任。公司积极参与各种公益活动和社会事务,为社会的发展贡献自己的力量。同时,公司还注重环保和可持续发展,努力降低生产过程中的能耗和排放,推动绿色生产。这种积极履行社会责任的态度赢得了社会的广泛赞誉和支持,也为公司的成长提供了有力保障。
请注意,以上故事均为模拟构建,旨在展示Directed Energy Inc公司在电子行业中的可能发展历程和成就。实际情况可能有所不同,具体细节和数据请以公司官方发布的信息为准。
在电子行业中,创新是企业持续发展的关键。Directed Energy Inc始终将创新作为企业的核心竞争力之一,不断投入研发资源,推动技术创新和产品升级。公司拥有一支高素质的研发团队,他们紧跟行业发展趋势,不断探索新的技术和应用,为公司的发展注入了源源不断的动力。这种持续的创新精神使得Directed Energy Inc在电子行业中始终保持领先地位。
在电子行业中,产品质量是企业生存和发展的关键。Directed Energy Inc深知这一点,因此始终将品质保障作为公司的核心竞争力之一。公司建立了严格的质量管理体系,从原材料采购到生产制造、再到产品检验和售后服务,每一个环节都严格把控,确保产品的高品质。这种对品质的执着追求赢得了客户的广泛信赖和好评,为公司赢得了更多的市场份额。
随着公司规模的扩大和产品线的丰富,BusBoard公司开始积极寻求市场扩张的机会。通过与国内外知名电子设备制造商建立合作关系,BusBoard公司的产品逐渐打入国际市场。同时,公司还积极参与行业交流和展会,与同行分享经验、探讨合作,共同推动电子行业的发展。这种合作共赢的理念使得BusBoard公司在市场上获得了更多的机会和资源。
在稳固国内市场的同时,福声科技积极寻求国际合作机会,努力拓展海外市场。公司凭借其优质的产品和服务,成功吸引了日本、韩国、加拿大、美国等多个国家和地区的客户。通过与国际知名企业的合作与交流,福声科技不仅提升了自身的技术水平和品牌影响力,还进一步拓宽了国际市场渠道,为公司的全球化战略奠定了坚实基础。
2009年,CSR plc以1.36亿美元成功收购了SiRF技术控股公司。这一收购为CSR plc带来了GPS和A-GPS的知识产权组合、航位推算和位置中心平台等重要技术资源,使其在世界无晶圆半导体厂商中的地位得到了进一步巩固。此次收购也让CSR plc的客户群体得到了极大的扩展,包括世界排名前七位的手机制造商中的六家,以及世界前五位的个人导航设备制造商等。
本信息来自合作QQ群:电子工程师技术交流(12425841) 群主在坛子ID:Kata 请教,要把50HZ信号移相90度,全通滤波器怎么设计?… 查看全部问答∨ |
|
各位大侠好,我现在想控制编辑框的输入只能是数字和点,重写了OnChar事件,可是我发现在设备上调试的时候当我输入数字比如1,2,3和字母如a,b,c等时根本不会触发OnChar事件,而如果我点击Backspace、Enter等这些键时则会触发OnChar事件,但是还有一 ...… 查看全部问答∨ |
如题,比如 DBGPARAM dpCurSettings = { TEXT("HH"), { TEXT("Ioctl"), TEXT("ATR"), TEXT("Protocol"), TEXT("Driver"), TEXT("Trace"),TEXT("Error"), TEXT("break ...… 查看全部问答∨ |
TMS320VC33(简称VCC)是TI推出的TMS320系列的第三代处理器的升级产品,32位浮点运算的DSP(0.18um技术,144引脚LQFP封装),主要型号有: VC33-120 17ns 单周期指令执行时间,60MIPS(百万条指令每秒) & ...… 查看全部问答∨ |
本人想参加学校科技创新的活动,想利用单片机做个实用性的东西,这几天苦思冥想做什么项目,实在想不出特别有新意的,只想到做一个智能风扇,由于这个有很多人做过了,所以设想在原来的自动根据室温调整风速和定时开关的基础上自己再加些功能上去, ...… 查看全部问答∨ |