打印

USCI模块例程

[复制链接]
3135|48
手机看帖
扫描二维码
随时随地手机跟帖
沙发
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 | 只看该作者
嗯,这个官网上很多,支持多去官网看看

使用特权

评论回复
5
jlyuan| | 2016-1-7 21:36 | 只看该作者
官網沒有asm的USCI,必須用C的去推

使用特权

评论回复
6
yszong| | 2016-1-7 21:36 | 只看该作者
7
dengdc| | 2016-1-7 21:37 | 只看该作者
这个用定时器模拟吧?

使用特权

评论回复
8
heweibig| | 2016-1-7 21:37 | 只看该作者

上官网的啦,上边的资料比我们提供的要权威的

使用特权

评论回复
9
zhanghqi|  楼主 | 2016-1-7 21:37 | 只看该作者
嗯,我知道啦

使用特权

评论回复
10
Soraka| | 2016-1-7 22:12 | 只看该作者
在3楼给的网站上,我怎么没有找到examples code呢,examples code 该怎么找呢

使用特权

评论回复
11
米尔豪斯| | 2016-1-10 15:44 | 只看该作者
本帖最后由 米尔豪斯 于 2016-1-10 15:52 编辑

用 MSP430Ware,里边例程多http://dev.ti.com/tirex/#/Packag ... 0G2XX%2FMSP430G2553

使用特权

评论回复
12
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
}

使用特权

评论回复
13
Soraka| | 2016-1-27 20:27 | 只看该作者
安装了一个MSPWare_2_40_00_37_setup,结果是ccs才能用,我装的是IAR。。。

使用特权

评论回复
14
1988020566| | 2016-1-30 23:12 | 只看该作者
串口的设计吗

使用特权

评论回复
15
i1mcu| | 2016-1-30 23:14 | 只看该作者
使用模拟串口的软件

使用特权

评论回复
16
pmp| | 2016-1-30 23:15 | 只看该作者
解决了吗

使用特权

评论回复
17
mmbs| | 2016-1-30 23:15 | 只看该作者
__interrupt void USCI0RX_ISR(void)
{
  while (!(IFG2&UCA0TXIFG));                // USCI_A0 TX buffer ready?
  UCA0TXBUF = UCA0RXBUF;                    // TX -> RXed character
}

使用特权

评论回复
18
lzbf| | 2016-1-30 23:15 | 只看该作者
这个得有例程才行的。

使用特权

评论回复
19
mmbs| | 2016-1-30 23:16 | 只看该作者
430的USCI串口(UART mode)初始化设置十分繁杂, UCA0BR0  UCA0BR1   UCA0MCTL 等还需按照波特率计算

使用特权

评论回复
20
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

粉丝