专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
怎么用msp430g2553将接收到的100k波特率的数据以115.2k波特率发送出去
2019-03-24 09:33
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
5883
4
1672
如题 刚入门 求大神指教
此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
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,你怎么能让它工作在两个不同的波特率下呢?
加载中...
一周热门
更多
>
相关问题
相关文章
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
#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; //发送接收到的数据
}
一周热门 更多>