USCI模块例程

[复制链接]
3759|48
 楼主| zhanghqi 发表于 2016-1-7 21:34 | 显示全部楼层 |阅读模式
求msp430g2553的USCI模块例程
 楼主| zhanghqi 发表于 2016-1-7 21:35 | 显示全部楼层
包括UART,SPI,IIC的程序  不胜感激啦
zhenykun 发表于 2016-1-7 21:35 | 显示全部楼层
嗯,在网站上http://www.ti.com/product/msp430g2553下载相关examples code,其中前缀为MSP430G2xx3_uscia0_或是MSP430G2xx3_uscib0_的C程序文件.
wyjie 发表于 2016-1-7 21:36 | 显示全部楼层
嗯,这个官网上很多,支持多去官网看看
jlyuan 发表于 2016-1-7 21:36 | 显示全部楼层
官網沒有asm的USCI,必須用C的去推
yszong 发表于 2016-1-7 21:36 | 显示全部楼层
dengdc 发表于 2016-1-7 21:37 | 显示全部楼层
这个用定时器模拟吧?
heweibig 发表于 2016-1-7 21:37 | 显示全部楼层

上官网的啦,上边的资料比我们提供的要权威的
 楼主| zhanghqi 发表于 2016-1-7 21:37 | 显示全部楼层
嗯,我知道啦
Soraka 发表于 2016-1-7 22:12 | 显示全部楼层
在3楼给的网站上,我怎么没有找到examples code呢,examples code 该怎么找呢
米尔豪斯 发表于 2016-1-10 15:44 | 显示全部楼层
本帖最后由 米尔豪斯 于 2016-1-10 15:52 编辑

用 MSP430Ware,里边例程多http://dev.ti.com/tirex/#/Packag ... 0G2XX%2FMSP430G2553
FireRiver9 发表于 2016-1-27 19:53 | 显示全部楼层
本帖最后由 FireRiver9 于 2016-1-27 19:54 编辑

UART例程
#include<msp430g2553.h>
unsigned int counter;
int main( void )
{
  WDTCTL = WDTPW + WDTHOLD;
  DCOCTL = 0;                               // Select lowest DCOx and MODx settings
  BCSCTL1 = CALBC1_1MHZ;                    // Set DCO
  DCOCTL = CALDCO_1MHZ;
  P1SEL = BIT1 + BIT2 ;                     // P1.1 = RXD, P1.2=TXD
  P1SEL2 = BIT1 + BIT2 ;                    // P1.1 = RXD, P1.2=TXD
  UCA0CTL1 |= UCSSEL_2;                     // SMCLK
  UCA0BR0 = 104;                            // 1MHz 9600
  UCA0BR1 = 0;                              // 1MHz 9600
  UCA0MCTL = UCBRS0;                        // Modulation UCBRSx = 1
  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX interrupt

  __bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, interrupts enabled
}
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
  while (!(IFG2&UCA0TXIFG));                // USCI_A0 TX buffer ready?
  UCA0TXBUF = UCA0RXBUF;                    // TX -> RXed character
}
Soraka 发表于 2016-1-27 20:27 | 显示全部楼层
安装了一个MSPWare_2_40_00_37_setup,结果是ccs才能用,我装的是IAR。。。
1988020566 发表于 2016-1-30 23:12 | 显示全部楼层
串口的设计吗
i1mcu 发表于 2016-1-30 23:14 | 显示全部楼层
使用模拟串口的软件
pmp 发表于 2016-1-30 23:15 | 显示全部楼层
解决了吗
mmbs 发表于 2016-1-30 23:15 | 显示全部楼层
__interrupt void USCI0RX_ISR(void)
{
  while (!(IFG2&UCA0TXIFG));                // USCI_A0 TX buffer ready?
  UCA0TXBUF = UCA0RXBUF;                    // TX -> RXed character
}
lzbf 发表于 2016-1-30 23:15 | 显示全部楼层
这个得有例程才行的。
mmbs 发表于 2016-1-30 23:16 | 显示全部楼层
430的USCI串口(UART mode)初始化设置十分繁杂, UCA0BR0  UCA0BR1   UCA0MCTL 等还需按照波特率计算
i1mcu 发表于 2016-1-30 23:16 | 显示全部楼层
#define clock 8000000
#define UCBRS(x) UCBRS_##x
void uart_init(long baud)
{
      float  x  =  clock / baud ;
      long  y  =  clock / baud ;
      char n;
      P1SEL  =  BIT1  +  BIT2 ;                     // P1.1 = RXD, P1.2=TXD
      P1SEL2  =  BIT1  +  BIT2 ;   
      UCA0CTL1|=UCSSEL_2 ;
     
      UCA0BR0  =  y % 256;                        
      UCA0BR1  =  y / 256;
     
      n=(char)((x-y)*8);
      UCA0MCTL=2*n; //UCBRS_n n为*2     
      UCA0CTL1 &= ~UCSWRST;                    
      IE2  |=  UCA0RXIE ;         
}
UCA0MCTL=2*n; 这里是移位操作,详情请看register。
当然,时钟修改了的话,也要记得把clock修改一下。
好用的话,大家支持一个吧,下面我把头文件共享,支持printf,getchar等
您需要登录后才可以回帖 登录 | 注册

本版积分规则

852

主题

11757

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部