怎么用msp430g2553将接收到的100k波特率的数据以115.2k波特率发送出去

2019-03-24 09:33发布

如题 刚入门 求大神指教
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
chunyang
1楼-- · 2019-03-24 14:31
< 如果都是串口,那么先存储,然后更改波特率设置后再转发,要求存储空间能满足,片内不够扩片外。如果一个是串口,另一个是其它,那倒是可以接收后立刻转发,只需要一个字节的临时存储。
wanyisq
2楼-- · 2019-03-24 15:48
 精彩回答 2  元偷偷看……
唉唉呦唉
3楼-- · 2019-03-24 18:47
就是用g2553做一个转化 这是我现在的代码 我想知道怎么写更改波特率的代码
#include "msp430g2553.h"
void main(void)
{
        WDTCTL = WDTPW + WDTHOLD;    //停止看门狗
        UCA0CTL1 |= UCSWRST;         // USCI_A0 进入软件复位状态
        UCA0CTL1 |= UCSSEL_2;        //时钟源选择 SMCLK
        BCSCTL1 = CALBC1_1MHZ;       //设置 DCO 频率为 1MHz
        DCOCTL = CALDCO_1MHZ;
        P1SEL = BIT1 + BIT2 ;        // P1.1 = RXD, P1.2=TXD
        P1SEL2 = BIT1 + BIT2 ;       // P1.1 = RXD, P1.2=TXD
        P1DIR |= BIT0;
        UCA0BR0 = 0x0a;              //时钟源 1MHz 时波特率为100,000
        UCA0BR1 = 0x00;              //时钟源 1MHz 时波特率为100,000
        UCA0MCTL = UCBRS0;           //小数分频器
        UCA0CTL1 &= ~UCSWRST;        //初始化 USCI_A0 状态机
        IE2 |= UCA0RXIE;             //使能 USCI_A0 接收中断
        _EINT();                     //开总中断
   
            while(1)
            {
            }
}
#pragma vector = USCIAB0RX_VECTOR      //接收中断
__interrupt void USCI0RX_ISR(void)
{
        while ( !(IFG2&UCA0TXIFG) );    //确保发送缓冲区准备好
        P1OUT ^= BIT0;    //接收指示灯状态改变
        UCA0TXBUF = UCA0RXBUF;        //发送接收到的数据
}
qiushenghua
4楼-- · 2019-03-24 19:42
这个问题可真把我难住了。因为G2553只有一个硬件UART,你怎么能让它工作在两个不同的波特率下呢?

一周热门 更多>

相关问题

    相关文章