msp430 串口波特率设置说明

合集下载

MSP430串口

MSP430串口

你参考一下别人的代码看看注释很详细#include <msp430x14x.h>unsigned char RxData;//全局变量,保存接收到的数据。

void BasicClockSet(){/*下面将片外高速晶体设为MCLK分四步:(1) 起动高晶体(2) 清除OFIFG 标志位(3) 至少等待50us。

(4) 查看震荡器失效标志位OFIFG是否清0,如果没有清0,则重复1至4步直到震荡器失效标志位OFIFG清0。

与之相关寄存器为:1.BCSCTL1和BCSCTL2(基础系统时钟控制寄存器)2.IE1中断使能寄存器的第二位OFIE,振荡器失效中断使能位。

3.IFG1中断标志寄存器的第二位OFIFG,振荡器失效标志位。

4.DCOCTL数字震荡器控制寄存器。

一. BCSCTL1设置(基础系统时钟控制寄存器1):1.XT2OFF=0,外部高速晶体开。

2.XTS=0,片外低速晶体的频率,0为低频模式。

3.DIVAx=00B,不将其进行分频,即分频比为14.XT5V不使用设为0。

5.RSELx=111,DOC的电阻选择,此时DOC震荡频率达到最大10000MHZ(理想状态)。

因此BCSCTL1=0000 0111B=0x47。

二.BCSCTL2设置(基础系统时钟控制寄存器2):1.SELMx=10B,选择片外高速晶体作为MCLK。

这两位应等到振荡器失效标志位清0后才置位2.DIVMx=00B,不将其进行分频,即分频比为13.SELS=0B,选择子系统时钟为DCO4.DIVSx=00B,不将其进行分频,即分频比为15.DCOR=0B,选择芯片内部电阻。

三.DCOCTL(数字震荡器控制寄存器)1.DCOx=111,DCO频波段选择,此时诜择最大2.MODx=000,调制选择,当DCOx=111B时MODx无效。

*//*下面将片外高速晶体设为主系统时钟。

*///(1) 起动片外高速晶体BCSCTL1&=~XT2OFF;//XT2OFF的宏为0x80。

MSP430串口

MSP430串口

你参考一下别人的代码看看注释很详细#include <msp430x14x.h>unsigned char RxData;//全局变量,保存接收到的数据。

void BasicClockSet(){/*下面将片外高速晶体设为MCLK分四步:(1) 起动高晶体(2) 清除OFIFG 标志位(3) 至少等待50us。

(4) 查看震荡器失效标志位OFIFG是否清0,如果没有清0,则重复1至4步直到震荡器失效标志位OFIFG清0。

与之相关寄存器为:1.BCSCTL1和BCSCTL2(基础系统时钟控制寄存器)2.IE1中断使能寄存器的第二位OFIE,振荡器失效中断使能位。

3.IFG1中断标志寄存器的第二位OFIFG,振荡器失效标志位。

4.DCOCTL数字震荡器控制寄存器。

一. BCSCTL1设置(基础系统时钟控制寄存器1):1.XT2OFF=0,外部高速晶体开。

2.XTS=0,片外低速晶体的频率,0为低频模式。

3.DIVAx=00B,不将其进行分频,即分频比为14.XT5V不使用设为0。

5.RSELx=111,DOC的电阻选择,此时DOC震荡频率达到最大10000MHZ(理想状态)。

因此BCSCTL1=0000 0111B=0x47。

二.BCSCTL2设置(基础系统时钟控制寄存器2):1.SELMx=10B,选择片外高速晶体作为MCLK。

这两位应等到振荡器失效标志位清0后才置位2.DIVMx=00B,不将其进行分频,即分频比为13.SELS=0B,选择子系统时钟为DCO4.DIVSx=00B,不将其进行分频,即分频比为15.DCOR=0B,选择芯片内部电阻。

三.DCOCTL(数字震荡器控制寄存器)1.DCOx=111,DCO频波段选择,此时诜择最大2.MODx=000,调制选择,当DCOx=111B时MODx无效。

*//*下面将片外高速晶体设为主系统时钟。

*///(1) 起动片外高速晶体BCSCTL1&=~XT2OFF;//XT2OFF的宏为0x80。

MSP430串口波特率的设置与计算

MSP430串口波特率的设置与计算

MSP430波特率的计算给定一个BRCLK时钟源,波特率用来决定需要分频的因子N:N = fBRCLK/Baudrate分频因子N通常是非整数值,因此至少一个分频器和一个调制阶段用来尽可能的接近N。

如果N等于或大于16,可以设置UCOS16选择oversampling baud Rate模式注:Round():指四舍五入。

Low-Frequency Baud Rate Mode Setting在low-frequency mode,整数部分的因子可以由预分频实现:UCBRx = INT(N)小数部分的因子可以用下列标称公式通过调制器实现:UCBRSx = round( ( N –INT(N) ) × 8 )增加或减少UCBRSx一个计数设置,对于任何给定的位可能得到一个较低的最高比特误码率。

如果确定是这样的情况UCBRSx设置的每一位必须执行一个精确的错误计算。

例1:1048576Hz频率下驱动以115200波特率异步通讯ACLK = REFO = ~32768Hz, MCLK = SMCLK = default DCO = 32 x ACLK = 1048576Hz。

N = fBRCLK/Baudrate = 1048576/115200 = ~9.10UCBRx = INT(N) = INT(9.10) = 9UCBRSx = round( ( N –INT(N) )×8 )= round( ( 9.10 –9) × 8 )=round(0.8 )=1UCA0CTL1 |= UCSSEL_2;// 选SMCLK为时钟UCAxBR0 = 9;UCAxBR1 = 0;UCAxMCTL = 0x02;//7-4:UCBRFx,3-1:UCBRSx,0:UCOS16UCBRSx 为寄存器UCAxMCTL的1-3位,所以写入0x02(00000010)例2:32768Hz频率下驱动以2400波特率异步通ACLK = REFO = ~32768Hz, MCLK = SMCLK = DCO ~1.045MHzN = fBRCLK/Baudrate = 32768/2400 = ~13.65UCBRx = INT(N) = INT(13.65) = 13UCBRSx = round( ( N –INT(N) )×8 )= round( ( 13.65 –13) × 8 )=round(5.2)=5UCA0CTL1 |= UCSSEL_1; // 选ACLK为时钟UCAxBR0 = 13;UCAxBR1 = 0 ;UCAxMCTL = 0x0A;//7-4:UCBRFx,3-1:UCBRSx,0:UCOS16UCBRSx为寄存器UCAxMCTL的1-3位,所以写入0x0A(00001010)Oversampling Baud Rate Mode Setting在oversampling mode 与分频器设置如下:UCBRx = INT(N/16)第一个调制阶段设置如下:UCBRFx = round( ( (N/16) –INT(N/16) ) × 16 )当要求更精确时,UCBRSx也可以被设置成0-7。

MSP430串口波特率的设置与计算

MSP430串口波特率的设置与计算

MSP430串口波特率的设置与计算
波特率是指每秒钟传输的位数,单位为波特(bps)。

在MSP430中,我们可以通过计算和设置分频器的值来实现不同的波特率。

下面是计算MSP430串口波特率的步骤:
1.确定MSP430的工作频率。

2.确定所需的波特率。

3.根据波特率和工作频率的关系,计算出分频系数的值。

4.将计算得到的分频系数的低8位和高8位写入UCAxBR0和UCAxBR1寄存器。

例如,假设MSP430的工作频率为16MHz,我们想要设置的波特率为9600bps,那么计算步骤如下:
1.工作频率为16MHz。

2. 波特率为9600bps。

4. 将BRx的值分解为低8位和高8位。

假设取整数部分为104,小数部分取0.1667乘以256,得到43、则UCAxBR0的值为43,UCAxBR1的值为0。

将这两个值写入寄存器即可设置波特率为9600bps。

需要注意的是,不同型号的MSP430可能有不同的时钟源和分频系数的范围。

在设置波特率时,应查阅相关的芯片手册或数据表,对相应的寄存器进行设置。

总结起来,MSP430串口波特率的设置与计算包括确定工作频率,确定所需波特率,计算分频系数,写入寄存器。

通过合适的设置,可以实现稳定和准确的串口通信。

【MSP430趣谈】MSP430第九讲之串口使用

【MSP430趣谈】MSP430第九讲之串口使用

【MSP430趣谈】MSP430第九讲之串⼝使⽤上次⼀讲中我们说到了定时器的两种写法,⼀种是利⽤寄存器进⾏书写的,另外⼀种是利⽤官⽅库函数进⾏书写的。

我们通过对⽐这两种写法,发现库函数居然写的要⽐寄存器还多,这不是更加不⽅便了吗。

其实库函数和寄存器应该说各有好处吧,因为TI官⽅给了我们很多的寄存器定义,所以相对看起来不是那么难懂,库函数的话也相对是简洁明了的。

我个⼈的观点是,在⼀些相对寄存器较少,运⾏速度较慢的单⽚机⾥⾯我们⽤寄存器写的话是最⾼效的,对于430来说,官⽅给的库相对的话运⾏速度不会和寄存器差点哪去(具体我也没测试过,瞎说),但库函数⼀定会⽐操作寄存器慢⼀点,因为他需要多步才可以配置到寄存器。

但是之后⼤家如果接触32的话也会发现同样存在寄存器和库函数的版本,也同样是这个道理,库函数慢⼀点,但是简洁明了,⽅便。

寄存器更快,但是识别度相对会低⼀点。

但对32的72MHz的运⾏速度也就基本没什么差了。

讲了这么多想说明⼀个什么道理呢?我们现在接触的单⽚机是算很底层的操作了,很底层的设计和应⽤了,相对的,我们有ARM9等等,这些复杂的芯⽚,就已经没有办法⽤所谓的寄存器进⾏操作了,因为它拥有的寄存器实在是太多了,所以就会有系统的产⽣,让芯⽚运⾏在系统上⾯,底层的东西集成了,减少了开发难度。

之后⼤家接触了其他语⾔,⽐如c++和java,其实这两个是类似的,只要会了⼀个另⼀个也基本花⼀点时间就可以学会了。

这两个语⾔的思想也和这个类似,把很多东西封装起来,你只要懂得怎么调⽤就好了,和我们调⽤函数类似,不⽤考虑函数具体是怎么实现这个功能的。

所以希望⼤家既可以明⽩寄存器具体是怎么操作的,同时学会应⽤库函数进⾏开发。

这⼀次我们将进⼊⼀个重要的篇章,通信协议,这个我们会通过⼏个章节来讲,主要介绍下⾯三种通信协议,⼀种是串⼝UART,⼀种是SPI,⼀种是IIC,三种我们都讲通过实例来说明。

这次我们要说的是串⼝UART的使⽤,串⼝应该算是⼀种最简单的通信⽅式了,我们通常值得串⼝指的是UART-Lite,也就是说它是由四根线组成,分别是VCC,RX,TX,GND。

MSP430串口调试全记录

MSP430串口调试全记录
先交代一下相关背景:
Mcu型号:MS9430F149;
实验板:自制(有些毛病,稍后坦白:)
开发环境:IAR Embedded Workbench V2.10A+串口调试助手;
试验仪器:泰克数字示波器,万用表等;
笔者的底细:马上步入而立之年,学习点新东西,已感到有些力不从心了:)以前有些51基础,430是第一次搞!当然这些都是业余爱好,以乐以闹为主:)
UTCTL1|=SSEL0; //ACLK
UBR01=0x03; //bode rate 9600.
UBR11=0x00;
UMCTL1=0x4a;
UCTL1=CHAR; //8 bits data format. enable UART
IFG2&=~UTXIFG1;
IE2|=URXIE1; //enable receive interrupt.
没问题啊,我测到的波形在±6V左右啊,正在一筹莫展之际,想到了波特率是否一致的问题,从示波器观察PC发给430的1Bit数据的宽度约100us,频率f=10k和设定的9600非常接近,没问题;在测430发给PC的1Bit数据宽度为6.4us,频率f=156250,于是发现问题所在,重新检查源程序时钟源选择,发现程序(▲2)的疏忽,更改后,一切ok,再看<串口调试助手接收区>正反复的显示“MSP430 MSP430 MSP430 MSP430…”
以为是MAX3232的硬件(包括4个电容,典型值是0.1uF,当时没找到0.1的就用4.7uF的代替了)出问题了,或者是RS232判决电平的毛病,这时在网上搜到了如下资料:
MAX232/MAX202接口输出的电平为何比计算机输出的RS-232电平低?

串口波特率设置说明

串口波特率设置说明

串口波特率设置说明:建议波特率不要设置太高,不是说设置高了不能用
波特率设置过高会导致传输数据不稳定,会出现丢包的现象。

怎么设置波特率的问题:这款芯片有两种方法来产生波特率
第一种:用定时器来产生波特率(脉冲信号),有弊端就是占用定时器。

第二种:用BRT寄存器(波特率专用定时器)来产生波特率,但是只有一个。

所以如果需要双串口同时通讯,则必须使用一个定时器,和一个BRT定时器。

一般串口发送数据都是选择模式一,或者模式三(波特率可变)。

(因为模式二和模式四波特率是固定的)。

所以在此我不多说波特率二和四。

T1X12这个标志位是来定义时钟分频(关系到定时器的速度,如果设置为1,则定时器不12倍分频,则波特率速度快12倍)。

默认为0,就是不设置,则定时器时钟12分频,和普通52速度一样。

BRTX12 这个标志位和T1X12差不多,只是它是来设置的快速波特率时钟分频,设置为1,不分频。

默认为0,则12分频,(波特率慢12倍)。

我自己理解的,错了请指正。

例:11.0592MHZ晶振,1T工作模式
波特率设置值=256 - INT(1105920/9600/(32+0.5))
=256 - 3
=253
十六进制,加上修正值是FD。

msp430g2553串口通信

msp430g2553串口通信

MSP430g2553串口通信MSP430的不同型号,其串行通讯工作模式是一样的。

以MSP430G2553为例进行说明。

MSP430G2553是20个引脚的16位单片机。

具有内置的16位定时器、16k 的FLASH 和512B 的RAM ,以及一个通用型模拟比较器以及采用通用串行通信接口的内置通信能力。

此外还具有一个10位的模数(A/D)转换器。

其引脚排布如图1.1所示。

其功能表如表1.1所示。

串行通讯模块主要由三个部分组成:波特率生成部分、发送控制器以及接收控制器。

如图1.2所示。

一、UART 模式在异步模式下,接收器自身实现帧的同步,外部的通讯设备并不使用这一时钟。

波特率的产生是在本地完成的。

异步帧格式由1个起始位、7或8个数据位、校验位(奇/偶/无)、1个地址位、和1或2个停止位。

一般最小帧为9个位,最大为13位。

图1.2 串行通讯模块内部结构图图1.1 MSP430G2553引脚图(一)UART的初始化单片机工作的时钟源来自内部三个时钟或者外部输入时钟,由SSEL1、SSEL0,以决定最终进入模块的时钟信号BRCLK的频率。

所以配置串行通讯的第一步就是选择时钟。

通过选择时钟源和波特率寄存器的数据来确定位周期。

所以波特率的配置是串行通讯中最重要的一部分。

波特率设置用三个寄存器实现:UxBR0(选择控制器0):波特率发生器分频系数低8位。

UxBR1(选择控制器1):波特率发生器分频系数高8位。

UxMCTL 数据传输的格式,以及数据传输的模式是通过配置控制寄存器UCTL来进行设置。

接收控制部分和发送控制部分。

首先需要串行口进行配置、使能以及开启中断。

串口接收数据一般采用中断方式,发送数据采用主动发送。

当接收到一个完整的数据,产生一个信号:URXIFG0=1(类似于51单片机的接收中断标志位),表示接收完整的数据。

当数据正在发送中,UTXIFG0=1,此时不能再发送数据,必须等当前数据发送完毕(UTXIFG0=0)才能进行发送。

MSP430串口使用总结

MSP430串口使用总结

CHAR:UxCTL Bit 4 Character length,7-bit or 8-bit character length 0:7-bit data 1:8-bit data SWRST:UxCTL Bit 0 Software reset enable 0:Disabled,USART reset released for operation 1:Eable,USART logic held in reset state } 4、3 UxTCTL(UTCTLx),USART Transmit Control Register { SSELx:Bits 5-4 Source select,These bits select the BRCLK source clock 00:UCLKI 01:ACLK 10:SMCLK 11:SMCLK } UxBR0,USART Baud Rate Control Register 0,低 8 位 UxBR1,USART Baud Rate Control Register 1,高 8 位 UxMCTL,USART Modulation Control Register UxMCTL Bits 7-0:Modulation bits, these bits select the modulation for BRCLK IFG1,Interrupt Flag Register 1 UTXIFG0: IFG1 Bit 7,USART0 transmit interrupt flag, UTXIFGO is set when UOTXBUF is 0:No interrupt pending//不挂起中断 1:Interrupt pending//等待中断处理 URXIFG0:IFG1 Bit 6 ,USART0 receive interrupt flag,URXIFG0 is set when U0RXBUF has received. 0:No interrupt pending 1:Interrupt pending 4、7 IE1,Interrupt Enable Register 1 UTXIE0 Bit 7,USART0 transmit interrupt enable.This bit enables the UTXIFG0 interrupt 0:Interrupt not enable 1:Interrupt enable URXIE0 Bit 6 USART0 receive interrupt enable.This bit enables the URXIFG0 interrupt 0:Interrupt not enable 1:Interrupt enable

MPS430F149单片机之_MSP430串口通信的波特率自动识别

MPS430F149单片机之_MSP430串口通信的波特率自动识别
// 处理来自串口 1 的发送中断
interrupt [UART1TX_VECTOR] void UART1_TX_ISR(void)
{
if(nTX1_Len != 0)
{
// 表示缓冲区里的数据没有发送完
nTX1_Flag = 0;
TXBUF1 = UART1_TX_BUF[nSend_TX1];
rate = BAUD57600;
break;
case 0x1c :
rate = BAUD38400;
break;
case 0xe0 :
rate = BAUD19200;
break;
case 0x80 :
rate = BAUD14400;
break;
// 定时器中断
interrupt [TIMERA0_VECTOR] void TimerA_ISR(void)
{
nTime_Flag = 1;
// CCR0 不中断允许
CCTL0 &= ~CCIE;
}
void SetBaud(int baud)
{
//停止UART
if(UART1_RX_BUF[nRX1_Len_temp - 1] == 13)
{
nRX1_Len = nRX1_Len_temp;
nRev_UART1 = 1;
nRX1_Len_temp = 0;
}
}
///////////////////////////////////////
} baudreg;
// 串口寄存器的值 (UBR0_1, UBR1_1, UMCTL_1, Descr)

MSP430UART串口波特率自动检

MSP430UART串口波特率自动检

Page 2 of 10
中国 MSP430 单片机专业网站

微控设计网
3.4 决定 115200 和 14400 波特率之间的速度 这部分描述了 ABR 检测算法是如何决定在 115200 和 9600 波特率之间的主机速度的。因为 MSP430 UART 端口的波特率要设置在 115200,从主机收到的字符将决定一个主机波特率范围之内的波特率。图三展示了 这些值。如果在此相位之间收到了一个 0,则说明主机的波特率速度低于 14400,而此时 430 将会受到另外 一个<CR>,这部分将会在 3.3.2 讲解。
微控设计网
// 匹配开始
// 延时程序开始,从而保证受到一个00); switch (getchar()) { case 0x0d : rate = BAUD9600; break; case 0xe6 : rate = BAUD4800; break; case 0x78 : rate = BAUD2400; break; case 0x80 : rate = BAUD1200; break; default : return -1; } break; default : return -1; } delay_8_33ms(); setbaud(rate); showbaud(rate);
图 3 波特率在 115K—9.6K 3.5 确定 9600 和 1200 波特率之间某一速度的方法 这部分描述了 ABR 检测算法是如何决定在 9600 和 1200 波特率之间的主机速度的.为了执行算法,在 3.3.1 这里所描述的方法已经使得波特率低于 14400。如果可能,430MCU 需设置波特率发生寄存器操作的波特率 为 9600。图四,展示了几种不同方式下<CR>的波特率的设置。一旦波特率在接下来决定下来,则对于一个 近似的波特率的只来讲,MSP430 波特率的生成器将保证主机波特率的匹配。见表 A-1。

msp430设置蓝牙模块波特率及自己波特率设置[整理]

msp430设置蓝牙模块波特率及自己波特率设置[整理]

msp430设置蓝牙模块波特率及自身波特率设置#include"msp430f5529.h"void UCA1INT(){UCA1CTL1|=UCSSEL_2+UCSWRST;//设置波特率 clk/(BR0+BR1*256) 详见指导手册P908 需同时设置UCA1Bx,UCOS16,UCBRS,UCBRFUCA1BR0=0x6d;UCA1BR1=0;UCA1MCTL|=UCBRS_2;//设置管脚P4SEL|=BIT4+BIT5;P4DIR|=BIT4;UCA1CTL1&=~UCSWRST;UCA1IE|=UCTXIE+UCRXIE;}int t;void main(void){//int i,j;WDTCTL=WDTPW+WDTHOLD; // Stop WDTUCA1INT();t=0;__enable_interrupt();while(t==0){UCA1TXBUF='A';while(UCA1STAT&UCBUSY);UCA1TXBUF='T';__delay_cycles(1000000);}while(1){UCA1TXBUF='A';while(UCA1STAT&UCBUSY);UCA1TXBUF='T';while(UCA1STAT&UCBUSY);UCA1TXBUF='+';while(UCA1STAT&UCBUSY);UCA1TXBUF='B';while(UCA1STAT&UCBUSY);UCA1TXBUF='A';while(UCA1STAT&UCBUSY);UCA1TXBUF='U';while(UCA1STAT&UCBUSY);UCA1TXBUF='D';while(UCA1STAT&UCBUSY);UCA1TXBUF='4';while(UCA1STAT&UCBUSY);__delay_cycles(10000000);}}unsigned char a[20];#pragma vector=USCI_A1_VECTOR__interrupt void Timer(void){switch(UCA1IV){case 2:a[t++]=UCA1RXBUF;break; //接受数据case 4:UCA1TXBUF;break; //发送数据}}1、核心模块使用HC-06从模块,引出接口包括VCC,GND,TXD,RXD,预留LED状态输出脚,单片机可通过该脚状态判断蓝牙是否已经连接,KEY引脚对从机无效2、led指示蓝牙连接状态,闪烁表示没有蓝牙连接,常亮表示蓝牙已连接并打开了端口3、底板3.3V LDO,输入电压3.6~6V,未配对时电流约30mA,配对后约10mA,输入电压禁止超过7V!4、接口电平3.3V,可以直接连接各种单片机(51,AVR,PIC,ARM,MSP430等),5V单片机也可直接连接,无需MAX232也不能经过MAX232!5、空旷地有效距离10米,超过10米也是可能的,但不对此距离的连接质量做保证6、配对以后当全双工串口使用,无需了解任何蓝牙协议,但仅支持8位数据位、1位停止位、无奇偶校验的通信格式,这也是最常用的通信格式,不支持其他格式。

msp430串口波特率设置说明

msp430串口波特率设置说明

msp430串口波特率设置说明
TI MSP430系列单片机,usart模块的波特率值设定是通过以下三个寄存器决定的:UxBR0,UxBR1,UxMCTL
波特率=BRCLK/N ,主要是计算出N。

BRCLK:时钟源,可以通过寄存器设定何为时钟源; 通过寄存器UCAxCTL1的SSEL两位选择,01:ACLK,02:SMCLK
N:波特率产生的分频因子。

N=UxBR1+UxBR0+UxMCTL,其中UxBR1+UxBR0为整数部分,UxMCTL为设定小数部分,其中UxBR1为高位,UxBR0为低位,两者结合起来为一个16位的字。

举例说明:波特率=115200,时钟源=8MHz ,为外部晶体振荡器
N=8000000/115200=69.44 。

即UxBR1=0,UxBR0=0x45,首先把小数部分0.44×8,即3.52,取整后为3。

这个3表示在UxMCTL中的8位里要有3个1,并且,UxMCTL分为First Stage Modulation和Second Stage Modulation,也就是前者为高4位,取值范围0-F,后者为低4位,注意后4位最好选择偶数。

把上步的到的小数部分取整后的数值分散到高位和低位,如3,可以写为0x16。

MSP430网络接口设计指南

MSP430网络接口设计指南

MSP430网络接口设计指南JY430_NET V1.01开发板使用说明感谢您选用了JY430_NET系列开发板,希望这款开发板能让您如虎添翼。

声明:本文档仅适用于第九单片机开发网的JY430_NET系列开发板这款开发板的概况如下图所示:1.使用 MSP430F149主MCU, 2K RAM, 60kflash, 48个I/O pin, 双uart 口, 8路12位A/D转换2.TCP/IP接口采用工业级CS8900芯片3.带有USB通信接口,适合使用笔记本的朋友进行调试。

4.主电路板带:RS232双工通信接口DB9输出公座;I2C 接口存储器一块(升级为铁电存储器FM24CL16)擦除寿命1亿次;3.3V稳压集成电路采用高稳定度AS1117-3.3数据口P4和所有多余I/O口引出,便于扩展配有高频(HF)和低频(LF)两种晶振,可方便选择各单元电路间有良好去耦合措施,大面积接地技术,电磁兼容性能良好5.具有板载硬件实时钟PCF8563,并搭配电池,满足特定应用需要。

6.配备了硬件外置看门狗芯片MAX706,使得这个开发板可以长期进行稳定的使用,也可以直接作为产品板用于设备当中。

开发板供电采用了外界电源方式,使用+5V直流电源输入。

为了维持稳定性,USB部分不作为供电输入。

网络部分的+3.3V供电和232、USB接口部分的供电分别有一块LM1117负责,这样可以最合理的进行功耗的分配,整个电路板不会有任何器件发热,从而增强电路的可靠性。

本开发板搭配的网络部分程序有两个。

其他程序均包含在内。

本文档用于大连酒游科技有限公司(第九单片机开发网 )的MSP430以太网开发板。

如有不明,请联系QQ:15532299 也可在第九单片机开发网相关栏目下边进行提问。

开发板的默认IP为192.168.1.190;子网掩码:255.255.255.0;网关设置为:192.168.1.1.您可以根据您所在的局域网设置进行修改。

430串口通信的资料

430串口通信的资料

1 MSP430单片机I/O端口控制特点与8031单片机相比,MSP430的I/O端口的功能要强大的多,其控制的方法也更为复杂。

MSP430的I/O端口可以实现双向的输入、输出;完成一些特殊功能如:驱动LCD、A/D转换、捕获比较等;实现I/O 各种中断。

MSP430采用了传统的8位端口方式保证其兼容性,即每个I/O端口控制8个I/O引脚。

为了实现对I/O端口每一个引脚的复杂控制,MSP430中的每个I/O口都对应一组8位的控制寄存器(如图1)。

寄存器中的每一位对应一个I/O引脚,实现对该引脚的独立控制。

寄存器的功能和数目是由该I/O口所能完成的功能以及类型确定的。

[2]图1为MSP430的一个I/O端口的控制结构示意图。

对于最基本的只能完成输入、输出功能的I/O端口其控制寄存器只有3个。

其中,输入寄存器保存输入状态;输出寄存器保存输出的状态,方向寄存器控制对应引脚的输入、输出状态。

本文中用来实现I2C总线接口的P6.6、P6.7都属于这类的端口。

此外,有些I/O端口不但可以用作基本的输入输出,而且可以用作其他用途,比如可以作为LCD的驱动控制引脚。

这类端口的控制功能寄存器实现引脚功能状态的切换。

再者,有一类端口不但可以完成上述两种端口的功能,而且可以实现中断功能。

该类端口拥有图1中所有的寄存器,中断触发的方式以及中断的屏蔽性都可以通过相应的寄存器控制。

本文中使用的P2.0就属于该类端口,利用它来接收LM92发出的中断。

通过上述的控制结构,MSP430的I/O端口可以实现很丰富的功能。

不仅如此,其中一些I/O口还可以与MSP430中的特殊模块相结合完成更为复杂的工作。

如与捕获比较模块相结合可以实现串行通信,与A/D 模块结合实现A/D转换等。

此外,MSP430 I/O端口的电器特性也十分突出,几乎所有的I/O口都有20mA 的驱动能力,对于一般的LED、蜂鸣器可以直接驱动无需辅助电路。

许多端口内部都集成了上拉电阻,可以方便与外围器件的接口。

430的串口和相应低功耗模式应用

430的串口和相应低功耗模式应用

先看看串口的接口,因为接口是复用的,可以作为IO也可以作为外设接口,所以要在P3SEL做一下设置。

接下来看看串口的设置流程,这点这个430的datasheet说的很清楚,我也很推荐这样的datasheet说明方式,不像有的公司,介绍了很多寄存器,但是这个功能怎么用,从开始初始化,设置寄存器,然后启动该应用没有介绍。

这点,应该给MSP430单片机掌声,还有就是TI公司提供了一些简单的例程,可以学习一下,也挺方便大家使用430单片机的,这点蛮好的啊。

这个图片里面的5步就是告诉你怎么设置一个串口,很方便的吧,你只要对照这5步来,就行了。

很方便的。

我们需要完成的工作就是第二步的那句初始化USART寄存器。

接下来看看相关的寄存器吧。

我把程序弄上来,对照程序说比较方便。

1: P3SEL |= 0x30; // 选择P3.4和P3.5做UART通信端口2: ME1 |= UTXE0 + URXE0; // 使能USART0的发送和接受3: UCTL0 |= CHAR; // 选择8位字符4: UTCTL0 |= SSEL0; // UCLK = ACLK(32768HZ)5: UBR00 = 0x03; // 波特率96006: UBR10 = 0x00; //7: UMCTL0 = 0x4A; // Modulation8: UCTL0 &= ~SWRST; // 初始化UART状态机9: IE1 |= URXIE0; // 使能USART0的接收中断第1,2 3 4句程序不解释了,自己看看寄存器就好了,我主要说一下波特率的设置,在串口调试里面这点,都是比较繁琐的,像51还要和相关的定时器配合使用,430单片机不需要定时器配合,只要有UCLK时钟就好了,这里时钟是32768HZ。

在datasheet里面有实例计算,如果你想具体了解,你可以看datasheet。

程序第8,9句都是按照上面串口设置流程来的啊,不多了,也简单。

单片机MSP430与PC机串口通讯设计说明

单片机MSP430与PC机串口通讯设计说明

单片机MSP430与PC机串口通讯设计摘要在多机通信的分布式控制系统中,通过PC机的串口与多台单片机的通信是最方便的。

在这样的分布式控制系统中,单片机与微机之间的多路通信是整个系统的关键。

基于MSP430系列单片机自身优越的性能以与其超低功耗的特点,利用MSP430F149的USART可以实现这种分布式多机通信功能。

在解决了与PC串口或其他带有串口的终端相连所需要的串口电平和逻辑关系的转变之后,选用MSP430F149的异步模式UART,用C语言完成下位机(PC机)接收和发送数据程序,借助VC++6.0开发平台并利用PComm软件包完成上位机(单片机)的通信程序。

文章介绍了美国TI公司新一代16位Flash型MSP430F149系列单片机的结构、特性和功能。

详细介绍了如何利用VC十+6.0进行串口通讯程序的编制,重点介绍了如何利用实现异步通讯的方法。

关键词:MSP430系列单片机,多路通信,控制系统,异步模式,PcommDesign of the Serial Communicationbetween MSP430F149 and PCABSTRACTIn the controlled system of distributing type in which many computers are communicating, by way of the PC string contact with many single chip machines to correspond is the most convenient.In this controlled system of distributing type, the various communication between single chip machines and microcomputer is the whole key. According to the low achievement consume and perfect function of MSP430,The USART that used in system of MSP430F149 can carry out this kind of function of singular to group.It is required to solve the voltage conversionand the change of logic relation, when the MSP430 connects with the PC string or other terminals which take with strings.And then, we can choose the asynchronous module (UART) of MSP430F149 to complete the MSP430F149’s main processor in language of C and write out the PC’s processor asking for help from The VC++6.0 and The Pcomm.This paper introduces the structure, principle and feature of new generation of 16 bit&Flash-type microcontrollerwhich belongs to the Texas Instruments MSP430F149 series. At the same time, it alsointroduces how to carry out the method of theserial communication between PC and MSP430F149. The paper presents how to use VC++6.0 design serial port communicationprogram,especially calling Pcomm functions to control serial port to transfer data.KEY WORDS:MSP430F149single-chip computer, serialcommunication, control system,UART,PComm目录摘要1ABSTRACT2目录3前言4第一章串口通讯的系统组成与原理5§1.1 系统组成与通讯原理5§ 1.1.1 系统构成5§ 1.1.2 通信原理与协议6第二章硬件电路设计11§2.1 接口电平电路设计11§2.1.1 RS-232接口电路设计11§2.2 单片机电路设计14§2.2.1 单片机电路设计图14第三章软件设计16§3.1 功能描述16§3.1.1 上位机和下位机实现的功能16一、功能描述:16§3.2 程序设计16§3.2.1 下位机程序设计16§3.2.2 上位机(PC机)程序设计26结论31参考文献33前言在工业控制领域,由多单片机构成的系统很多,如大规模测控系统、大型车辆控制系统、机器人控制系统等。

MSP430微控制器系列讲座(十三)串口通信的波特率自动检测与识别

MSP430微控制器系列讲座(十三)串口通信的波特率自动检测与识别

MSP430微控制器系列讲座(十三)串口通信的波特率自动
检测与识别
雷奥
【期刊名称】《电子世界》
【年(卷),期】2008(000)001
【摘要】通常微控制器通过串行接口与其它终端进行通信时,两个终端需要通讯
波特率一致才能达到准确与可靠的通讯效果,串行波特率的自动检测(ABR)可以解决通信终端的波特率自动匹配问题,从而实现微控制器与PC或其它主机的串行通信。

本文主要介绍MSP430系列微控制器实现串口通信时的波特率自动检测。

【总页数】3页(P26-28)
【作者】雷奥
【作者单位】无
【正文语种】中文
【中图分类】TP331.1
【相关文献】
1.MSP430微控制器系列讲座(十四)MSP430F461X在便携式医疗产品上的单
芯片解决方案 [J], 雷奥
2.MSP430微控制器系列讲座(十五)脉搏式血氧仪的单芯片解决方案 [J], 雷奥
3.MSP430微控制器系列讲座(六)超低功耗玻璃破碎探测器 [J], 雷奥
4.MSP430微控制器系列讲座(七)基于TUSB341O的MSP43O USB接口方案 [J],
雷奥
5.MSP430微控制器系列讲座(八)电容式接触摸感应按键的实现之硬件篇 [J], 雷奥
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TI MSP430系列单片机,usart模块的波特率值设定是通过以下三个寄存器决定的:UxBR0,UxBR1,UxMCTL
波特率=BRCLK/N ,主要是计算出N。

BRCLK:时钟源,可以通过寄存器设定何为时钟源; 通过寄存器UCAxCTL1的SSEL两位选择,01:ACLK,02:SMCLK
N:波特率产生的分频因子。

N=UxBR1+UxBR0+UxMCTL,其中UxBR1+UxBR0为整数部分,UxMCTL为设定小数部分,其中UxBR1为高位,UxBR0为低位,两者结合起来为一个16位的字。

举例说明:波特率=115200,时钟源=8MHz ,为外部晶体振荡器
N=8000000/115200=69.44 。

即UxBR1=0,UxBR0=0x45,首先把小数部分0.44×8,即3.52,取整后为3。

这个3表示在UxMCTL中的8位里要有3个1,并且,UxMCTL分为First Stage Modulation和Second Stage Modulation,也就是前者为高4位,取值范围0-F,后者为低4位,注意后4位最好选择偶数。

把上步的到的小数部分取整后的数值分散到高位和低位,如3,可以写为0x16。

相关文档
最新文档