UCA0MCTL这个在mfc串口通信实例中有什么用,手册没看懂

后使用快捷导航没有帐号?
查看: 1176|回复: 5
430G2553串口发送数据串口调试助手显示RX没改变,求指教
在线时间6 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
1 Byte3 Byte3 Byte1 Byte头类型序列号电压数据电流数据尾0x552 bit22 bit12 bit12 bit0xAA//需要发送数据的格式
目标:用单片机填充以上数据并从串口发出,从串口调试助手观察结果
目前代码:
#include &msp430.h&
#include&stdio.h&
void USCI_A0_init(void)
& && &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
int main(void)
&&WDTCTL = WDTPW + WDTHOLD; // Stop WDT
&&USCI_A0_init();
&&unsigned char sbuf[8];& && &&&/*待发送的内容*/
&&unsigned int vol,curr,index=0;
&&while(1)
& && &sbuf[0] = (unsigned char)0x55;& & //头部,固定
& && &sbuf[1] = (unsigned char)((0x80)|(index & (0x3F&&16)));& & //前两个bit为类型,此处以10B电压源数据为例,后6bit为index前6位
& && &sbuf[2] = (unsigned char)(index & (0xFF&&8));& & //去除头6bit后的一个字节
& && &sbuf[3] = (unsigned char)(index & 0xFF);& & //取index最后一个字节
& && &vol = (unsigned int)(20);& & //电压,先按固定值20取
& && &curr = (unsigned int)(30);&&//电流,先按固定值30取
& && &sbuf[4] = (unsigned char)(vol & (0xFF&&4));//电压数据前八bit放入第一个Byte
& && &sbuf[5] = (unsigned char)(((vol&0xF)&&4)|(curr & (0xF&&8)));//电压数据的后四位和电流数据的前4位
& && &sbuf[6] = (unsigned char)(curr & 0xFF);//电流数据的后8位
& && &sbuf[7] = (unsigned char)0xAA;& && &&&//尾部
& && &for(i=0;i&8;i++)
& && && & UartSend(sbuf);
#pragma vector=USCIAB0RX_VECTOR
void UartSend(unsigned char c)//发送字节函数
while(!(IFG2 & UCA0TXIFG));&&//待发送为空
UCA0TXBUF=c;
IFG2 &=~UCA0RXIFG;
目前问题:连接串口,串口调试助手里显示的“RX”没有变化;若成功的发送的话不是应该在串口调试助手里看到“RX”增加吗?
求大神指教
注:初学者,对单片机操作的代码都是网上找来的
在线时间759 小时
威望3158 分
芯币5574 枚
E金币641 枚
TA的帖子TA的资源
五彩晶圆(初级), 积分 3158, 距离下一级还需 342 积分
五彩晶圆(初级), 积分 3158, 距离下一级还需 342 积分
用示波器 测量引脚的波形。看看是否有数据,有的话,看串口助手的配置,没有的话,分析程序
谢谢指点,我觉得应该是程序的问题,我再看看,新人有很多不懂,还需多多请教各位&
在线时间835 小时
威望3730 分
芯币2815 枚
E金币140 枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 3730, 距离下一级还需 2270 积分
五彩晶圆(中级), 积分 3730, 距离下一级还需 2270 积分
换成二进制的,看看能不能得到数据,如果没有的话自己慢慢查程序,如果有的话,你慢慢在更改下设置就OK啦
在线时间873 小时
威望1594 分
芯币798 枚
E金币1893 枚
TA的帖子TA的资源
发送函数和中断服务函数弄混淆了。
看例程要知其然并知其所以然,不要一味模仿。
程序中明显用了中断,那么中断服务程序是哪个?
你的初始化函数最后一句是进入低功耗模式,那么等到串口收到数据再继续运行?
中断服务和发送函数是同一个,这个函数缺少参数,执行不出错已经是万幸了。
先下载仿真例程,手动单步跟踪,看看人家是怎么顺序执行的。搞清楚了再考虑怎么写你自己的程序。
多谢指教,刚接触单片机,很多都还不会。&
在线时间6 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
发送函数和中断服务函数弄混淆了。
看例程要知其然并知其所以然,不要一味模仿。
程序中明显用了中断,那 ...
多谢指教,刚接触单片机,很多都还不会。
在线时间6 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
用示波器 测量引脚的波形。看看是否有数据,有的话,看串口助手的配置,没有的话,分析程序
谢谢指点,我觉得应该是程序的问题,我再看看,新人有很多不懂,还需多多请教各位
Powered by
逛了这许久,何不进去瞧瞧?MSP430F247串口发送问题,求高手帮忙看一下,谢谢,实在是弄不出来了~
[问题点数:40分]
MSP430F247串口发送问题,求高手帮忙看一下,谢谢,实在是弄不出来了~
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2014年2月 C/C++大版内专家分月排行榜第二2013年4月 C/C++大版内专家分月排行榜第二2013年3月 C/C++大版内专家分月排行榜第二2012年12月 C/C++大版内专家分月排行榜第二2012年11月 C/C++大版内专家分月排行榜第二2012年8月 C/C++大版内专家分月排行榜第二
2014年12月 C/C++大版内专家分月排行榜第三2014年5月 C/C++大版内专家分月排行榜第三2014年3月 C/C++大版内专家分月排行榜第三2013年12月 C/C++大版内专家分月排行榜第三2013年10月 C/C++大版内专家分月排行榜第三2013年9月 C/C++大版内专家分月排行榜第三2013年7月 C/C++大版内专家分月排行榜第三2013年5月 C/C++大版内专家分月排行榜第三2013年2月 C/C++大版内专家分月排行榜第三2013年1月 C/C++大版内专家分月排行榜第三2012年9月 C/C++大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。}

我要回帖

更多关于 串口通信协议 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信