




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MSP430G2553学习笔记常用赋值运算符:清除:&= ,置位:|= ,测试:&= , 取反:= ,看门狗模块:WDT(看门狗)WDTCTL看门狗定时器控制寄存器 15-876543210口令HOLDNMIESNMITMSELCNTCLSSELIS1IS0IS1,IS0选择看门狗定时器的定时输出,T是WDTCNT的输入时钟源周期0T x 2(15)1T x 2(13)2T x 2(9)3T x 2(6)SSEL选择WDTCNT的时钟源0SMCLK1ACLKIS0、IS1、SSEL可确定WDT定时时间,WDT只能定时8种和时钟源相关的时间WDT可选的定时时间(晶体为32768HZ,SMCLK=1MHZ)SSELIS1IS0定时时间/ms0110.056Tsmclk x 2(6)0100.5Tsmclk x 2(9)1111.9Taclk x 2(6)0018Tsmclk x 2(13)11016Taclk x 2(9)00032Tsmclk x 2(15)(PUC复位后的值)101250Taclk x 2(13)1001000Taclk x 2(15)CNTCL当该位为1时,清除WDTCNTTMSEL工作模式选择0看门狗模式1定时器模式NMI选择RST/NMI引脚功能,在PUC后被复位0 RST/NMI引脚为复位端1 RST/NMI引脚为边沿触发的非屏蔽中断输入NMIES选择中断的边沿触发方式0上升沿触发NMI中断1下降沿触发NMI中断HOLD停止看门狗定时器工作,降低功耗0 WDT功能激活1时钟禁止输入,计数停止WDT(看门狗)配置语句WDTCTL=WDTPW+WDTHOLD;/将WDTPW+WDTHOLD赋值给WDTCTL,关闭看门狗定时器控制寄存器(Stop watchdog timer)IE1 |= WDTIE;/使能WDT中断WDTCTL = WDT_ADLY_1000;/WDT 1 s / 4间隔计时器WDTCTL = WDTPW + WDTHOLD + WDTNMI + WDTNMIES;/WDTCTL由高8位口令和低8位控制命令组成,要写入操作WDT的控制命令,出于安全原因必须先正确写入高字节看门狗口令。口令为5AH,如果口令写错将导致系统复位。读WDTCTL时不需要口令。这个控制寄存器还可以用于设置NMI引脚功能。WDT看门狗定时器(Watch Dog Timer),这是16位增计数器,由MSP430所选定的时钟电路产生的固定周期时钟信号对计数器进行加法计数。如果计数器事先被预置的初始状态不同,那么从开始计数到计数溢出为止所用的时间就不同。WDTCNT不能直接通过软件存取,必须通过看门狗定时器的控制寄存器WDTCTL来控制。WDTPWWDTPW=0x5A00,是WDTCTL的密码,只有赋予这个值才能修改WDTCTL这个寄存器WDTHOLDWDTHOLD=0x0080,使WDTCTL的HOLD位置1*时钟模块:DCO(数字控制振荡器)DCOCTL DCO(数字控制振荡器)控制寄存器76543210DCO.2DCO.1DCO.0MOD.4MOD.3MOD.2MOD.1MOD.0DCO.0-DCO.2定义8种频率之一,可以分段调节DCOCLK频率,相邻两种频率相差10%,而频率由注入直流发生器的电流定义MOD.0-MOD.4定义在32个DCO周期中插入的Fdco+1周期个数,而在下的DCO周期中为Fdco周期,控制改换DCO和DCO+1选择的两种频率。如果DCO常数为7,表示已经选择最高频率,此时不能利用MOD.0-MOD.4进行频率调整DCO配置语句DCOCTL = 0;/选择最低DCOx和MODx设置BCSCTL1=CALBC1_1MHZ;/为1MHZ BCSCTL1校准数据DCOCTL=CALDCO_1MHZ;/为1MHZ DCOCTL校准数据,这两句同时使用就使DCO设置为1MHZCALBC1_1MHZ=0xFF;/校准常数抹去_bis_SR_register(SCG1 + SCG0);/不用DCOSet_DCO(DELTA_1MHZ);/设置DCO和获得常量BCSCTL1基本时钟系统控制寄存器1DCOCTLDCO时钟频率控制寄存器CALBC1_1MHZ这是为1MHZ BCSCTL1校准数据时所采用的标签CALDCO_1MHZ这是为1MHZ DCOCTL校准数据时所采用的标签DCO频率与相应标签DCO频率1MHZ8MHZ12MHZ16MHZ对应标签CALBC1_1MHZCALBC1_8MHZCALBC1_12MHZCALBC1_16MHZCALDCO_1MHZCALDCO_8MHZCALDCO_12MHZCALDCO_16MHZ。MCLK(主系统时钟)和SMCLK(子系统时钟)BCSCTL2基本时钟系统控制寄存器276543210SELM.1SELM.0DIVM.1DIVM.0SELSDIVS.1DIVS.0DCORSELM.1 SELM.0选择MCLK时钟源0时钟源为DCOCLK(默认)1时钟源为DCOCLK2时钟源为LFXT1CLK(对于MSP430F11/12X),时钟源为XT2CLK(对于MSP430F13/14/15/16X)3时钟源为LFTXTICLK。DIVM.1 DIVM.0选择MCLK分频0 1分频(默认)1 2分频2 4分频3 8分频SELS选择SMCLK时钟源0时钟源为DCOCLK(默认)1时钟源为LFXT1CLK(对于MSP430F11/12X),时钟源为XT2CLK(对于MSP430F13/14/15/16X)。DIVS.1 DIVS.0选择SMCLK分频。01分频12分频2 4分频4 8分频DCOR选择DCO电阻0内部电阻1外部电阻PUC信号之后,DCOCLK被自动选择MCLK时钟信号,根据需要,MCLK的时钟源可以另外设置为LFXT1或者XT2。设置顺序如下:1复位OscOff2清除OFIFG3延时等待至少50us4再次检查OFIFG,如果仍然置位,则重复3、4步骤,直到OFIFG=0为止。BCSCTL3XT2SxLFXT1SxXCAPxXT2OFLFXT1OFXT2Sx XT2范围选择,选择XT2的频率范围00.41MHZ113MHZ2316MHZ30.416MHZLFXT1Sx低频时钟选择和LFXT1范围选择XTS=0在LFXT1和VLO之间选择XTS=1选择LFXT1的频率范围0LFXT1上的32768hz晶体1保留2VLOCLK3外部数字时钟源XCAPx振荡器电容选择,XTS=0时,用于LFXT1的有效电容01pf16pf210pf312.5pfXT2OFXT2振荡器失效0不存在失效条件1存在失效条件LFXT1OFLFXT1振荡器失效0不存在失效条件1存在失效条件MCLK(主系统时钟)和SMCLK(子系统时钟)配置语句BCSCTL2|=SELM_0+DIVM_0;/选择DCOCLK为MCLK的时钟源并且对MCLK的时钟源进行1/1分频BCSCTL2|=DIVS_0;/对SMCLK的时钟源进行1/1分频BCSCTL2基本时钟系统控制寄存器2SELM_0BCSCTL2的第6、7位,对MCLK的时钟源进行选择DIVM_0BCSCTL2的第4、5位,对MCLK的时钟源进行分频DIVS_0BCSCTL2的第1、2位,对SMCLK的时钟源进行分频SELM_0:MCLK选择DCOCLK(默认)注:SELM_0=0x00(SELM.1,SELM.0)SELM_1:MCLK选择DCOCLK注:SELM_1=0x01(SELM.1,SELM.0)SELM_2:MCLK选择XT2CLK/LFXTCLK注:SELM_2=0x02(SELM.1,SELM.0)SELM_3:MCLK选择LFXTCLK注:SELM_3=0x03(SELM.1,SELM.0)DIVM_0:对MCLK 1/1分频注:DIVM_0=0x00(DIVM.1,DIVM.0)DIVM_1:对MCLK 1/2分频注:DIVM_1=0x01(DIVM.1,DIVM.0)DIVM_2:对MCLK 1/4分频注:DIVM_2=0x02(DIVM.1,DIVM.0)DIVM_3:对MCLK 1/8分频注:DIVM_3=0x03(DIVM.1,DIVM.0)SELS_0:SMCLK选择DCOCLK(默认)注:LFXT1CLK(对于MSP430F11/12X),XT2CLK(对于MSP430F13/14/15/16X)SELS_1:SMCLK选择LFXT1CLK/XT2CLKDIVS_0: 对SMCLK 1/1分频注:DIVS_0=0x00 (DIVS.1,DIVS.0)DIVS_1: 对SMCLK 1/2分频注:DIVS_1=0x01 (DIVS.1,DIVS.0)DIVS_2: 对SMCLK 1/4分频注:DIVS_2=0x02 (DIVS.1,DIVS.0)DIVS_3: 对SMCLK 1/8分频注:DIVS_3=0x03 (DIVS.1,DIVS.0)注:时钟源LFXTCLK针对MSP430F11/12X,时钟源XT2CLK针对MSP430F13/14/15/16X。ACLK(辅助时钟)BCSCTL1基本时钟系统控制寄存器176543210XT2OFFTXSDIVA.1DIVA.0XT5VRsel.2Resl.1Resl.0XT2OFF控制XT2振荡器的开启与关闭。0XT2振荡器开启。1XT2振荡器关闭(默认为XT2关闭)XTS控制LFXT1工作模式,选择需结合实际晶体振荡器连接情况0LFXT1工作在低频模式(默认)1LFXT1工作在高频模式(必须连接有高频相应的高频时钟源)DIVA.0 DIVA.1控制ACLK分频0不分频(默认)12分频24分频38分频XT5V此位设置为0。Resl1.0,Resl1.1,Resl1.2三位控制某个内部电阻以决定标称频率。Resl=0,选择最低的标称频率。Resl=7,选择最高的标称频率。ACLK(辅助时钟)配置语句BCSCTL1|=DIVA_0;/对ACLK进行1/1分频DIVA_0BCSCTL1的第4、5位,对ACLK的时钟源进行分频DIVA_0:对ACLK 1/1分频注:DIVA_0=0x00(DIVA.1,DIVA.0)DIVA_1:对ACLK 1/2分频注:DIVA_1=0x01(DIVA.1,DIVA.0)DIVA_2:对ACLK 1/4分频注:DIVA_2=0x02(DIVA.1,DIVA.0)DIVA_3:对ACLK 1/8分频注:DIVA_3=0x03(DIVA.1,DIVA.0)*BCSCTL3 |= LFXT1S_2;/ LFXT1 = VLO ,低频晶振选择内部的超低功耗,超低频率晶振。IFG1 &= OFIFG;/ 清除晶振错误标志位(Clear OSCFault flag)_EINT();/总中断允许,打开总中断,相当于51的EA=1;_DINT();/关闭总中断,相当于51的EA=0;LPM0; /开启低功耗模式0,进入低功耗模式,等待中断唤醒temp = temp; /取反 P1OUT = temp; /P1口赋值 TACTL = 0; / Stop Timer*IO端口模块:IO口所有P口都可作为通用IO口使用,所有P口都可进行字节操作和位操作PxDIR 输入/输出方向寄存器(0:输入模式 1:输出模式)76543210P7DIRP6DIRP5DIRP4DIRP3DIRP2DIRP1DIRP0DIR在PUC后全都为复位,作为输入时,只能读;作为输出时,可读可写PxIN输入寄存器76543210PxINPxINPxINPxINPxINPxINPxINPxIN输入寄存器是只读寄存器,用户不能对其写入,只能通过读取该寄存器的内容知道IO口的输入信号,此时引脚方向必须为输入。PxOUT输出寄存器76543210P7OUTP6OUTP5OUTP4OUTP3OUTP2OUTP1OUTP1OUT这是IO端口的输出缓冲器,在读取时输出缓存的内容与脚引方向定义无关,改变方向寄存器的内容,输出缓存的内容不受影响。PxIFG中断标专寄存器(0:没有中断请求 1:有中断请求)76543210P7IFGP6IFGP5IFGP4IFGP3IFGP2IFGP1IFGP0IFG该寄存器有8个标志位,对应相应的引脚是否有待处理的中断请求;这8个中断标志共用一个中断向量,中断标志不会自动复位,必须软件复位;外部中断事件的时间必须=1.5倍的MCLK的时间,以保证中断请求被接受。PxIES中断触发沿选择寄存器(0:上升沿中断 1:下降沿中断)76543210P7IESP6IESP5IESP4IESP3IESP2IESP1IESP0IESPxIE中断使能寄存器(0:禁止中断1:允许中断)76543210P7IEP6IEP5IEP4IE P3IEP2IEP1IEP0IEPxSEL功能选择寄存器(0:选择引脚为I/O端口 1:选择引脚为外围模块功能)76543210P7SELP6SELP5SELP4SELP3SELP2SELP1SELP0SELPxREN 上拉/下拉电阻使能寄存器(0:禁止 1:启用)76543210P7RENP6RENP5RENP4RENP3RENP2RENP1RENP0RENIO口配置语句按字节操作:P1DIR=0xff;/将P1口作为输出口PIOUT=0x20;/ P1口输出0x20P1DIR=0x00;/将P1口作为输入口data=P1IN;/读取P1口外部输入值P1OUT |= 0x02;/ P1.1 = 1P1OUT &= 0x02;/ P1.1 = 0P1DIR |= 0x13;/ P1.0,1 和P1.4 输出P1SEL |= 0x11;/ P1.0,4 ACLK、SMCLK 输出P1OUT=0X01; /P1.0取反P1IE|=0x80;/P1.7中断允许P1IES|=0x00;/P1.7上升沿触发按位操作:P1OUT|=BIT0;/P1.0输出1P1OUT&=BIT0;/P1.0输出0P1DIR=BIT0;/将P1.0作为输出口P1DIR&=BIT0;/将P1.0口作为输入data=P1IN&BIT0;/读取P1.0口外部输入值P1IE|=BIT0;/打开P1.0外部中断 ,BIT0的值为0x01,即把P1IE的第一位置1P1IE&=BIT0;/关闭P1.0外部中断P1DIR&=BIT7;/P1.7为输入P1SEL = BIT1 + BIT2;/设置IO口,P1.2为发送TXD,P1.1为接收RXDP1SEL2 = BIT1 + BIT2;/设置IO口,P1.2为发送TXD,P1.1为接收RXDP1IFG=0;/P1.7中断标志清除,对于多源中断必须先清中断标志再打开中断P1IFG&=BIT7;/P1.7中断标志清除 其他语句:while (1) / Test P1.4 if (0x08 & P1IN) P1OUT |= 0x01; / if P1.3 set, set P1.0 else P1OUT &= 0x01; / else reset 端口P3、P4、P5、P6是没有中断功能的,其它功能与P1、P2相同,在此不再作详尽说明。端口COM、S实现与LCD片的驱动接口,COM端是LCD片的公共端,S端为LCD片的段码端。LCD片输出端也可以用软件配置为数字输出端口,详情使用请查看其手册。*USART串行异步模式:USART0异步方式中断控制位特殊功能寄存器接收中断控制位发送中断控制位IFG1接收中断标志URXIFG0接收中断标志UTXIFG0IE1接收中断使能URXIE0接收中断使能UTXIE0ME1接收允许URXE0接收允许UTXE0USART1异步方式中断控制位特殊功能寄存器接收中断控制位发送中断控制位IFG2接收中断标志URXIFG1接收中断标志UTXIFG1IE2接收中断使能URXIE1接收中断使能UTXIE1ME2接收允许URXE1接收允许UTXE1MSP430器件中有的型号有两个通信模块USART0和USART1,因此他们有两套寄存器.USART0的寄存器寄存器缩写读写类型地址初始状态控制寄存器 UCA0CTL读/写070HPUC后001H发送控制寄存器 UCA0IRTCTL读/写71HPUC后001H接收控制寄存器 UCA0IRRCTL读/写72HPUC后000H波特率调整控制寄存器 UCA0MCTL 读/写73H不变波特率控制寄存器0 UCA0BR0读/写74H不变波特率控制寄存器1 UCA0BR1读/写75H不变接收缓冲器 UCA0RXBUF读76H不变发送缓冲器 UCA0TXBUF读/写77H不变SFR模块使能寄存器1ME1读/写004HPUC后000HFR模块使能寄存器1IE1读/写000HPUC后000HFR模块使能寄存器1IFG1读/写002HPUC后082HUSART1的寄存器寄存器缩写读写类型地址初始状态控制寄存器 UCA1CTL读/写078HPUC后001H发送控制寄存器 UCA1IRTCTL读/写79HPUC后001H接收控制寄存器 UCA1IRRCTL读/写7AHPUC后000H波特率调整控制寄存器 UCA1MCTL读/写7BH不变波特率控制寄存器0 UCA1BR0读/写7CH不变波特率控制寄存器1 UCA1BR1读/写7DH不变接收缓冲器 UCA1RXBUF读7EH不变发送缓冲器 UCA1TXBUF读/写7FH不变SFR模块使能寄存器1ME2读/写005HPUC后000HFR模块使能寄存器1IE2读/写001HPUC后000HFR模块使能寄存器1IFG2读/写003HPUC后020HUCAxCTLx控制寄存器76543210PENAPEVSPBCHARLISTENSYNCMMSWRSTPENA校验允许位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;最后如需要中断,则设置相应的中断使能。 UCAxIRTCTL发送控制寄存器76543210 未用 CKPL SSEL1 SSEL0URXSETXWAKE 未用 TXEPTCKPL时钟极性控制位0UCLKI信号与UCLK信号极性相同1UCLKI信号与UCLK信号极性相反SSEL1、SSEL0时钟源选择,此两位确定波特率发生器的时钟源0外部时钟UCLKI;1辅助时钟ACLK2子系统时钟SMCLK3主系统时钟MCLKURXSE接收触发沿控制位0没有接收触发沿检测1有接收触发沿检测TXWAKE传输唤醒控制0下一个要传输的字符为数据1下一个要传输的字符是地址TXEPT发送器空标志,在异步模式与同步模式时是不一样的。0正在传输数据或者发送缓冲器(UCAxTXBUF)有数据1表示发送移位寄存器和UCAxTXBUF空或者SWRST=1UCAxIRRCTL接收控制寄存器76543210FEPEOEBRKURXEIEURXWIERXWAKERXERRFE帧错误标志位0没有帧错误1帧错误PE校验错误标志位0校验正确1校验错误OE溢出标志位0无溢出1有溢出BRK打断检测位0没有被打断1被打断URXEIE接收出错中断允许位0不允许中断,不接收出错字符并且不改变URXIFG标志1允许中断,出错字符接收并且能够置位URXIFGURXWIE接收唤醒中断允许位,当接收到地址字符时,该位能够置位URXIFG,当URXEIE=0,如果接收内容有错误,该位不能置位URXIFG。0所有接收的字符都能够置位URXIFG1只能接收到地址字符才能置位URXIFG在各种条件下URXEIE和URXWIE对URXIFG的影响URXEIEURXWIE字符出错地址字符接收字符后的标志位URXIFG0X1X不变000X置位0100不变0101置位10XX置位(接收所有字符)11X0不变11X1置位RXWAKE接收唤醒检测位。在地址位多机模式,接收字符地址位置位时,该机被唤醒,在线路空闲多机模式,在接收到字符前检测到URXD线路空闲时,该机被唤起,RXWAKE置位。0没有被唤醒,接收到的字符是数据1唤醒,接收的字符是地址RXERR接收错误标志位0没有接收错误1有接收到错误 UCAxBR0波特率选择寄存器0765432102726252423222120 UCAxBR1波特率选择寄存器1765432102152142132122112102928 UCAxBR0、 UCAxBR1波特率选择寄存器是用于存放波特率分频因子的整数部分。 UCAxMCTL波特率调整控制寄存器76543210M7M6M5M4M3M2M1M0UCBRSx 为寄存器UCAxMCTL的1-3位UCBRFx 为寄存器UCAxMCTL的4-7位,UCOS16为0位波特率计算公式:波特率=BRCLK/(UBR+(M7+M6+M0)/8)若波特率发生器的输入频率BRCLK不是所需波特率的整数倍,带有一小数,则整数部分写UBR寄存器,小数部分由调整寄存器 UCAxMCTL的内容反映。UCAxRXBUF接收数据缓存76543210接收缓存存放移位寄存器最后接收的字符,可由用户访问。读接收缓存可以复位接收时产生的各种错误标志、RXWAKE位和URXIFGx位。如果传输7位数据,接收缓存内容右对齐,最高位为0。当收接和控制条件为真时,接收缓存装入当前接收到的字符。当接收和控制条件为真时接收数据缓存结果条件结果URXEIEURXWIE装入UCAxRXBUFPEFEBRK01无差错地址字符00011所有地址字符XXX00无差错字符00010所有字符XXXUCAxTXBUF发送数据缓存76543210发送缓存内容可以传至发送移位寄存器,然后由UTXDx传输。对发送缓存进行写操作可以复位UTXIFGx。如果传输出7位数据,发送缓存内容最高为0。常用波特率及其对应设置参数与对应误差表Baud rateDivide byACLK32768HZ低频振荡器MCLK1048576HZ高频振荡器ACLKMCLK UCAxBR1 UCAxBR0 UCAxM CTLMax.TX Error/%Max.RX Error/%Synchr TX Error/% UCAxBR1 UCAxBR0 UCAxMCTLMax.TX Error/%Max.RX Erro r/%75436.91139811B4FF-0.3/0.3-0.3/0.32369DFF0/0.12特殊功能寄存器系统中断处理当各模块发生中断请求时并且相应的中断允许和通用中断允许位(GIE)置位时,中断服务程序按以下顺序动作:1CPU处于活动状态:完成当前所执行的指令.2CPU处于停止状态:低功耗模式终止.3指向下一条指令的PC值压入堆栈.4SR压入堆栈5如果在执行上条指令时已发生多个中断请求等待服务,则选择最高优先级者.6单中断源标志的中断请求位自动复位,多中断源标志仍保持置位等待软件服务.7通用中断允许位GIE复位;CPUoff位、OSCOff位和SCG1位置位;状态位V、N、Z和C复位;SCG0位保持不变.8相应的中断向量值装入PC,程序从此地址继续执行中断处理.CPU的状态寄存器SR15-9876543210保留VSCG1SCG0OscOffCPUoffGIENZCV溢出标志SCG1 SCG0时钟控制位SCG1置位关闭SMCLKSCG0置位关闭DCO发生器OscOff晶体振荡控制位,置位OscOff使晶体振荡器处于停止状态,置位OscOff同时CPUoff位也置位。可用NMI或外部中断(系统当前中断允许)将CPU唤醒。CPUoff CPU控制位,置位CPUoff可使CPU进入关闭模式,可以用所中断允许将CPU唤醒。GIE全局中断标志位,控制可屏蔽中断,GIE置位CPU可响应可屏蔽中断,GIE复位CPU不响应可屏蔽中断N负标志Z零标志C进位标志ME1模块允许寄存器176543210UTXE0URXE0/USPIE0初始状态:PUC后为000HUTXE0、USART0发送允许位0不允许1可允许URXE0、USART0接收允许位0不允许1可允许USPIE0、USART0发送与接收允许位(在SPI模式)IFG1中断标志寄存器176543210UTXIFG0URXIFG0NMIIFGOFIFGWDTIFG初始状态:PUC后为082HUTXIFG0、USART0发送中断标志位(F14、15、16、44)此位上电为UTXIFG0=1,表示可以向发送缓冲器写操作。对发送缓存进行写操作时可以复位UTXIFG0。URXIFG0、USART0接收中断标志位(F14、15、16、44)0无接收到有效字符1接收到有效字符,读接收缓存可以复位接收时产生的各种错误标志、RXWAKE位和URXIFGx位。NMIIFG NMI/RST引脚信号位OFIFG振荡器失效时置位0无振荡器失效1振荡器失效,当XT扫荡器丢失大约100个振荡周期时设置TX振荡器失效标志OSCFault。OSCFault标志设置振荡器失效中断标志OFIFG,如果这时振荡器失效中断允许(OFIE)置位,则将产生非屏蔽中断请求。OFIFG标志必须由用户软件来清除。WDTIFG看门狗中断标志,看门狗模式时溢出或密钥不符时产生置位IE1中断使能寄存器176543210UTXIE0URXIE0ACCVIENMIIEOFIEWDTIE初始状态:PUC后为000HUTXIE0 USART发送中断允许位0不允许1允许URXIE0 USART0接收中断使能位允许0不允许1允许ACCVIE FLASH存贮器非法访问中断允许NMIIE NMI中断允许OFIE振荡器失效中断允许0不允许1允许WDTIE看门狗允许,选看门狗模式无效0不允许1允许ME2中断使能寄存器276543210UTIE1URXE1/USPIE1初始状态:PUC后为000HUTXE1 USART1发送允许位0不允许1可允许URXE1 USART1接收允许位0不允许1可允许USPIE1 USART0发送与接收允许位(在SPI模式)IFG2中断标志寄存器276543210UTXIFG1URXIFG1初始状态:PUC后为020HUTXIFG1 USART1发送中断标志位(F14、15、16、44)此位上电为UTXIFG0=1,表示可以向发送缓冲器写字符。对发送缓存进行写操作时可以复位UTXIFG0。URXIFG1 USART1接收中断标志位(F14、15、16、44)0无接收到有效字符1接收到有效字符,读接收缓存可以复位接收时产生的各种错误标志、RXWAKE位和URXIFGx位。IE2中断使能寄存器276543210UTXIE1URXIE1初始状态:PUC后为000HUTXIE1 USART1发送中断允许位(F14、15、16、44)URXIE1 USART1接收中断允许位(F14、15、16、44)串口通信的一般步骤 1、选择串口模块(USCI_A0、USCI_B0)。 USCI_A0 : P1SEL = BIT1 + BIT2; P1SEL2 = BIT1 + BIT2; /设置IO口,P1.2为发送TXD,P1.1为接收RXD 2、在SWRST=1时,设置串口。 UCA0CTL=UCSWRST; / SWRST=1,复位USART(SWRST上电置位时与其相关的位都在复位状态),并设置串口 3、选择波特率发生器时钟。 UCA0IRTCTL1=UCSSEL1; /UCLK=ACLK 4、使能发送、接收。 ME2=UCA0TXE1+UCA0RXE1; /使能RXD TXD 5、设置字符长度。 UCA0CTL=CHAR; /设置字符长度为8位,默认时为7位 6、设置波特率。 注:UCA0BR=UCA0BR0+UCA0BR1; 其值应大于3 UCA0BR0=8; /存放波特率分频因子的整数部分的低字节 UCA0BR1=0; /存放波特率分频因子的整数部分的高字节 UCA0MCTL = UCBRS2 + UCBRS0; /设置波特率为115200 7、SWRST=0,串口设置完毕。 UCA0CTL&=UCSWRST; /恢复运行,初始化USCI状态机,在SWRST为1之前设置串口 8、使能中断。 IE2=UCA0RXIE1; /使能接收中断串口通信配置语句UCA0CTL1 |= UCSWRST;/设置SWRST=1UCA0CTL1 = UCSSEL_2 + UCSWRST;/使用SMCLK,保持SW复位 UCA0BR0 = 52;/波特率=8MHz/52=153.8KHzUCA0BR1 = 0;UCA0MCTL = UCBRF_1 + UCOS16;/设置第一阶段调制器1UCA0IRTCTL = UCIRTXPL2 + UCIRTXPL0 + UCIRTXCLK + UCIREN;/脉冲长度= 6个时钟周期的一半 ,启用BITCLK16, IrDA enc/decUCA0CTL1 &= UCSWRST;/恢复运行,初始化USCI状态机,在SWRST为1之前设置串口例程1:int main(void) WDTCTL = WDTPW + WDTHOLD; / Stop WDT P1DIR = 0xFF; / All P1.x outputs P1OUT = 0; / All P1.x reset P2DIR = 0xFF; / All P2.x outputs P2OUT = 0; / All P2.x reset P1SEL = BIT1 + BIT2 ; / P1.1 = RXD, P1.2=TXD P1SEL2 = BIT1 + BIT2 ; / P1.1 = RXD, P1.2=TXD P3DIR = 0xFF; /
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物理力学基础概念与原理解析教案
- 期中七年级数学试卷
- 培训机构小学数学试卷
- 七下总复习数学试卷
- 普洱中考数学试卷
- 齐河一中真题数学试卷
- 年级上学期数学试卷
- 2024年酒泉市公安局肃州分局招聘警务辅助人员笔试真题
- 蚌埠固镇县职业技术学校招聘考试真题2024
- 2024年连州市市直机关遴选考试真题
- 2025-2030中国高k和ALD和和CVD金属前体行业市场发展趋势与前景展望战略研究报告
- 高考补习学生管理制度
- 2025年4月12日衢州事业单位及市直遴选(选调)笔试真题及答案解析
- 占用林地补偿协议书
- 信息技术智能办公教程 课件 任务5-邮件合并
- 中建三局项目商务策划书(23P)
- 高一数学必修一必修二各章知识点总结
- 2024临床输血指南
- 大体积混凝土施工培训讲义
- 香港标准租约合同模板
- 国能灵璧浍沟70MW风电项目 XGC15000TM-1000t履带吊-1000及SCC8000A-800t履带吊安拆方案
评论
0/150
提交评论