新手入门
- 积分
- 19
- 金钱
- 19
- 注册时间
- 2019-3-12
- 在线时间
- 6 小时
|
10金钱
我用430进行AD采集后,对模拟电压信号进行处理后,要输出相应的数字信号,但是我通过串口发送电脑上,发送出来的值是正常的,但是它一直像图上这种,是以两个两个或者三个一组发出来的,我想要的是一个一个发出来,请大佬指导下,我的程序哪里出问题了,要怎么改?我刚开始学,基本处于本人
下面是代码#include <msp430x14x.h>#include "Config.h"
#include"ADC.h"
#include"12864.h"
#define uchar unsigned char
float TEMP1,TEMP2,Flag,A[5]={0,0,0,0,0},B[5]={0,0,0,0,0};
uchar x;
uchar y;
float NUM1,NUM2;
//***********************************************************************
// 系统时钟初始化
//***********************************************************************
void Clock_Init()
{
uchar i;
BCSCTL1&=~XT2OFF; //打开XT2振荡器
BCSCTL2|=SELM1+SELS; //MCLK为8MHZ,SMCLK为8MHZ
do{
IFG1&=~OFIFG; //清楚振荡器错误标志
for(i=0;i<100;i++)
_NOP();
}
while((IFG1&OFIFG)!=0); //如果标志位1,则继续循环等待
IFG1&=~OFIFG;
}
/*************************************************************************
ADC初始化程序,用于配置ADC相关寄存器
多通道采集的关键
1: 选择正确的的转换模式
2: 选择正确的CSTARTADD:单通道模式转换通道/多通道模式守通道
定义单次转换的启始地址或者序列通道转换的首地址
3:理解好 EOS:多通道转换末通道标志 0 序列没有结束 1 该序列中最后一次转换
4:单通道转换的地址 CSTARTADD,对应于上面的 ADC12MCTLx
*************************************************************************/
void ADC_Init()
{
P6SEL=BIT1; //选择ADC通道,设置对应IO口的功能模式
P6DIR=0x00;
ADC12CTL0|= ADC12ON + SHT0_2;//+ REF2_5V + REFON; //ADC电源控制开,16个CLK,内部基准2.5V
ADC12CTL1 = ADC12SSEL_0 + SHP + CONSEQ_1 + CSTARTADD_0 ; //SMCLK做时钟源
ADC12MCTL0 = SREF_2+INCH_0; // 参考电压:外部基准电压3.3V ADC 通道:A0
ADC12MCTL1 = SREF_2+INCH_1+ EOS; // 参考电压:外部基准电压3.3V ADC 通道:A1
ADC12IE|= BIT0+BIT1; //中断允许
ADC12CTL0|= ENC; //使能转换器
}
//*************************************************************************
// MSP430串口初始化
//*************************************************************************
void UART_Init()
{
U0CTL|=SWRST; //复位SWRST
U0CTL|=CHAR; //8位数据模式
U0TCTL|=SSEL1; //SMCLK为串口时钟
U0BR1=baud_h; //BRCLK=8MHZ,Baud=BRCLK/N
U0BR0=baud_l; //N=UBR+(UxMCTL)/8
U0MCTL=0x00; //微调寄存器为0,波特率9600bps
ME1|=UTXE0; //UART0发送使能
ME1|=URXE0; //UART0接收使能
U0CTL&=~SWRST;
IE1|=URXIE0; //接收中断使能位
P3SEL|= BIT4; //设置IO口为普通I/O模式
P3DIR|= BIT4; //设置IO口方向为输出
P3SEL|= BIT5;
}
//***********************************************************************
// MSP430IO口初始化
//***********************************************************************
void Port_Init()
{
LED8DIR = 0xff; //设置IO口方向为输出
LED8 = 0x00; //初始设置为00
}
//*************************************************************************
// 串口0发送数据函数
//*************************************************************************
void Send_Byte(uchar data)
{
while((IFG1&UTXIFG0)==0); //发送 寄存器空的时候发送数据
U0TXBUF=1;
}
//*************************************************************************
// |
|