请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR2311 你好。 我正在尝试通过 UART 向串行发送2个 ADC 值。 现在、我有一个名为 ADC_Result 的变量、用于存储我要发送的两个蓝调。 在 TX 缓冲区上、我首先发送 ADC_Result [0]。 然后是逗号、接着是 ADC_Result [1]。 这是怎么可能的。 我正在使用 sprintf 将 int 更改为十六进制值、以便它可以显示在串行监视器上。
#include #include #include unsigned int adc_result[2]; // 10位 ADC 转换结果数组 unsigned int i; //用于迭代 ADC_Result 数组 void init_uart ()的变量; //初始化 UART 串行通信 int main (void) { WDTCTL = WDTPW | WDTHOLD; //停止 WDT init_uart(); //初始化 UART 通信 //配置 ADC A0~1引脚 P1SEL0 |= BIT0 + BIT1; P1SEL1 |= BIT0 + BIT1; //禁用 GPIO 上电默认高阻抗模式以激活 //先前配置的端口设置 PM5CTL0 &=~LOCKLPM5; //配置 ADC ADCCTL0 |= ADCSHT_2 | ADCMSC | ADCON; // 16ADCclks、MSC、ADC 打开 ADCCTL1 |= ADCSHP | ADCCONSEQ_1 | ADCSSEL_1; // ADC 时钟 ACLK、采样计时器、s/w trig、单序列 ADCCTL2 |= ADCRES_1; //10位转换结果 ADCMCTL0 |= ADCINCH_1 | ADCSREF_4; // A0~2 (EOS);Vref=1.5V ADCIE |= ADCIE0; //启用 ADC 转换完成中断 //配置引用 PMMCTL0_H = PMMPW_H; //解锁 PMM 寄存器 PMMCTL2 |= INTREFEN; //启用内部基准 _DELAY_CYCLES (400); //基准趋稳延迟 __no_operation(); while (1) { I = 1; while (ADCCTL1和 ADCBUSY); //等待 ADC 内核处于活动状态 ADCCTL0 |= ADCENC | ADCSC; //采样和转换开始 _bis_SR_register (LPM0_bits | GIE); //输入带中断的 LPM0 while (!(UCA0IFG & UCTXIFG)); //等待 USCI_A0 TX 缓冲器准备就绪 char ADC_Char[16]; //创建字符数组以存储 ADC_Result,因为序列只读取 ASCII sprintf (adc_char、"%d"、adc_result);//将 ADC 结果 int 值转换为字符数组 对于(i=0;i 't="" know="" what="" theyre="" here="" __delay_cycles(5000);="" initilizes="" uart="" on="" pins="" 1.6="" and="" 1.7="" void="" init_uart()="" configure="" p1sel0="" |="BIT6" bit7;="" set="" 2-uart="" pin="" second="" function="" uca0ctlw0="" sets="" softare="" reset="" enable="" smclk="" brclk="" be="" used="" baud="" rate="" of="" 115200="" calculation.="" setting="" baudrate="" uca0br0="8;" 1000000="" int(n)="8" uca0mctlw="0xD600;" -="" int(1000000="" 115200)="0.68" uca0br1="0x00;" ucbrsx="" value="0xD6" &="~UCSWRST;" initialize="" eusci="" adc="" interrupt="" service="" routine="" #if="" defined(__ti_compiler_version__)="" ||="" defined(__iar_systems_icc__)="" #pragma="" vector="ADC_VECTOR" __interrupt="" adc_isr(void)="" #elif="" defined(__gnuc__)="" __attribute__="" ((interrupt(adc_vector)))="" adc_isr="" (void)="" #else="" #error="" compiler="" supported!="" #endif="" switch(__even_in_range(adciv,adciv_adcifg))="" case="" adciv_none:="" break;="" adciv_adcovifg:="" adciv_adctovifg:="" adciv_adchiifg:="" adciv_adcloifg:="" adciv_adcinifg:="" adciv_adcifg:="" adc_result[i]="ADCMEM0;" if(i="=" 0)="" __bic_sr_register_on_exit(lpm0_bits);="" exist="" lpm0="" else="" i--;="" default:=""