求大神们赐教,2147小游戏什么意思!完整的是xt2147小游戏

后使用快捷导航没有帐号?
查看: 631|回复: 7
新人求助!!!求大神们帮帮忙
在线时间14 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 8, 距离下一级还需 192 积分
一粒金砂(中级), 积分 8, 距离下一级还需 192 积分
想写一个程序,采用的芯片是MSP430f5438a,想利用ADC12采集12路数据,并通过串口发送到串口助手上,下面的程序不知道应该要怎么改
#include &msp430x54x.h&
#define U8& && &unsigned char
U8 RX_DATA = 0;
U8 TX_DATA[77] = {0};
U8 EN_ADC12 = 0;
U8 SPI_RX_DATA = 0;
U8 uart1_RX_DATA[24] = {0};
U8 uart1_RX_DATA_count = 0;
U8 TX_DATA_TEMP[48] = {0};
U8 TX_DATA_TEMP_count = 0;
void clk_init()
& &&&P5SEL |= BIT4 + BIT5;
& &&&UCSCTL6 &= ~(XT1OFF);& && && & //使能XT1
& &&&UCSCTL6 |= XCAP_3;& && && && &&&//选择内部负载电容12pF
& &&&UCSCTL0 = 0x0000;& && && && &&&//将DCOx和MODx设为最低
& &&&UCSCTL6 &= ~(XT1DRIVE_3);& && & //减少XT1驱动能力,降低功耗
& &&&UCSCTL3 = SELREF_0 + FLLREFDIV_1;&&//FLL模块参考时钟源选择XT1CLK
& && && && && && && && && && && && && & //参考时钟分频器
& & //测试晶振是否产生故障失效,并清除故障失效标志位
& && && & UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
& && && & SFRIFG1 &= ~OFIFG;
& &&&}while (SFRIFG1&OFIFG);
& &&&__bis_SR_register(SCG0);& && && &&&//禁止FLL
& &&&UCSCTL1 = DCORSEL_3;& && && && &&&//选择DCO频率范围
& &&&UCSCTL2 = 249;& && && && && &//设置DCO频率为8MHz
& && && && && && && && && && && &//计算公式:(249 + 1) * 32768 = 8MHz&&
& &&&__bic_SR_register(SCG0);& &&&//启用FLL
& &&&UCSCTL4 |= SELS_0;& &//SMCLK时钟来源XT1晶振
& &&&__delay_cycles(250000);
}& && && &&&
& && && && &&&
& && && &&&
void adc_init()
{& && && &&&
& &&&P6SEL = 0x01;
& &&&ADC12CTL0 = ADC12ON + ADC12SHT0_12+ADC12MSC; //打开ADC,设置采样时间
& &&&ADC12CTL1 = ADC12SHP+ADC12CONSEQ_1+ADC12DIV_0+ADC12SSEL_3; //序列通道单次
& &&&ADC12MCTL0 |= ADC12INCH_1;& &
& &&&ADC12IE = 0x01;& && && && &&&//使能ADC12IFG.0中断
& &&&ADC12CTL0 |= ADC12ENC;& && && &//使能转换
& &&&ADC12CTL0 |= ADC12SC;& & //开始采样转换
& && && && &
void uart1()
& &&&WDTCTL = WDTPW + WDTHOLD;& & //关闭看门狗
& &&&P3SEL = BIT3 + BIT4;
& &&&//UCA0CTL1 |= UCSWRST;
& &&&UCA0CTL1 |= UCSSEL_2;& && && && && &&&// SMCLK 为系统时钟&&1048576HZ
& &&&UCA0BR0 = 9;& && && && && && && &&&//波特率115200
& &&&UCA0BR1 = 0;& && && && && && && &&&
& &&&UCA0MCTL |= UCBRS_1 + UCBRF_0;& && &&&
& &&&UCA0CTL1 &= ~UCSWRST;
& &&&UCA0IE |= UCRXIE;& & //使能接受中断
void main( void )
&&clk_init(); //系统时钟初始化
&&adc_init();
&&uart1();
&&_EINT();//开全局中断
&&TX_DATA[0] = 0xFF;
&&TX_DATA[1] = 0xFF;&&
&&TX_DATA[2] = 0xFF;
&&TX_DATA[75] = 0x0A;&&
&&TX_DATA[76] = 0x0D;
&&while(1)
& & for(U8 i = 0;i & 48; i++)
& && &while (!(UCA1IFG&UCTXIFG));& && && && & // USCI_A0 TX buffer ready?
& && &UCA1TXBUF = TX_DATA[i];& && && && && && &// TX -& RXed character
/***********************************************************
&&中断函数
***********************************************************/
#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR (void)
&&switch(__even_in_range(ADC12IV,36))
& & //switch(ADC12IV)& &
& & //&&case&&0:& && && && && && && && && &// Vector&&0:&&No interrupt
& & //&&case&&2:& && && && && && && && && &// Vector&&2:&&ADC overflow
& & //&&case&&4:& && && && && && && && && &// Vector&&4:&&ADC timing overflow
& & //&&case&&6:& && && && && && && && && &// Vector&&6:&&ADC12IFG0
& & //&&case&&8:& && && && && && && && && &// Vector&&8:&&ADC12IFG1
& & //&&case 10:& && && && && && && && && &// Vector 10:&&ADC12IFG2
& & //&&case 12:& && && && && && && && && &// Vector 12:&&ADC12IFG3
&&case 0x24:
& & TX_DATA[0] = ADC12MEM15 && 8;
& & TX_DATA[1] = ADC12MEM15 & 0xFF;
& & TX_DATA[2] = ADC12MEM14 && 8;
& & TX_DATA[3] = ADC12MEM14 & 0xFF;
& & TX_DATA[4] = ADC12MEM13 && 8;
& & TX_DATA[5] = ADC12MEM13 & 0xFF;
& & TX_DATA[6] = ADC12MEM12 && 8;
& & TX_DATA[7] = ADC12MEM12 & 0xFF;
& & TX_DATA[8] = ADC12MEM7 && 8;
& & TX_DATA[9] = ADC12MEM7 & 0xFF;
& & TX_DATA[10] = ADC12MEM6 && 8;
& & TX_DATA[11] = ADC12MEM6 & 0xFF;
& & TX_DATA[12] = ADC12MEM5 && 8;
& & TX_DATA[13] = ADC12MEM5 & 0xFF;
& & TX_DATA[14] = ADC12MEM4 && 8;
& & TX_DATA[15] = ADC12MEM4 & 0xFF;
& & TX_DATA[16] = ADC12MEM3 && 8;
& & TX_DATA[17] = ADC12MEM3 & 0xFF;
& & TX_DATA[18] = ADC12MEM2 && 8;
& & TX_DATA[19] = ADC12MEM2 & 0xFF;
& & TX_DATA[20] = ADC12MEM1 && 8;
& & TX_DATA[21] = ADC12MEM1 & 0xFF;
& & TX_DATA[22] = ADC12MEM0 && 8;
& & TX_DATA[23] = ADC12MEM0 & 0xFF;
& & while (!(UCA0IFG&UCTXIFG));& && && && && &// USCI_A0 TX buffer ready?
& & UCA0TXBUF = 0x55;& && && && && && &// TX -& RXed character
& & //uart1_RX_DATA_count = 0;
&&default:
在线时间154 小时
威望186 分
芯币1074 枚
TA的帖子TA的资源
一粒金砂(中级), 积分 186, 距离下一级还需 14 积分
一粒金砂(中级), 积分 186, 距离下一级还需 14 积分
大神都比较忙,我来叨叨两句吧。程序是你自己写的不?一步一步的调试,是串口问题还是AD问题?是配置问题还是处理问题?什么现象也不说,光看程序发现问题估计也只有大神了。
在线时间14 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 8, 距离下一级还需 192 积分
一粒金砂(中级), 积分 8, 距离下一级还需 192 积分
大神都比较忙,我来叨叨两句吧。程序是你自己写的不?一步一步的调试,是串口问题还是AD问题?是配置问题还是处理问题?什么现象也不说,光看程序发现问题估计也只有大神了。
额。。。是我写的啊,才自学了一个月,调试过了,调试助手上就显示了“0x55”。。。。是不是AD部分UCA0TXBUF=0x55这边不对
我说下喔,你看看是不是这个问题,void uart1()里面初始化的是UCA0,服务子程序里也是UCA0,主函数调用时是UCA1?MSP430配置不是很懂喔,不知道是不是这的原因呢?&
在线时间154 小时
威望186 分
芯币1074 枚
TA的帖子TA的资源
一粒金砂(中级), 积分 186, 距离下一级还需 14 积分
一粒金砂(中级), 积分 186, 距离下一级还需 14 积分
本帖最后由 aibing 于
14:58 编辑
额。。。是我写的啊,才自学了一个月,调试过了,调试助手上就显示了“0x55”。。。。是不是AD部分UCA0TXBUF=0x55这边不对
我说下喔,你看看是不是这个问题,void uart1()里面初始化的是UCA0,服务子程序里也是UCA0,主函数调用时是UCA1?MSP430配置不是很懂喔,不知道是不是这的原因呢?主函数一直在给UCA1TXbuf赋值,服务子程序一直在给UCA0txbuf赋值,串口打印出55,说明你的UCA0初始化的很成功,只是我不太理解为什么主函数是UCA1TX
在线时间1079 小时
威望11116 分
芯币18984 枚
E金币179 枚
TA的帖子TA的资源
你一直发0x55串口助手当然显示0x55了,线理解每个模块怎么用,然后再集成到一起。看别人的程序要先知道每一句是什么意思,为什么这么写
在线时间97 小时
威望151 分
芯币2225 枚
E金币20 枚
TA的帖子TA的资源
先调通ADC,再调通串口,再合并吧,手头没板子,没玩430,不过思路搞明白,这个不是很难,耐心,细致
在线时间75 小时
威望198 分
芯币260 枚
TA的帖子TA的资源
一粒金砂(中级), 积分 198, 距离下一级还需 2 积分
一粒金砂(中级), 积分 198, 距离下一级还需 2 积分
建议找点最简单的AD例程和UART例程看下 明白了 然后再把这两块结合起来就好了~
在线时间14 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 8, 距离下一级还需 192 积分
一粒金砂(中级), 积分 8, 距离下一级还需 192 积分
明白点了,谢谢大家,我再试试
Powered by
逛了这许久,何不进去瞧瞧?

我要回帖

更多关于 赐教是什么意思 的文章

 

随机推荐