char aChar = '0' + i;
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP430FR2311 大家好,我正在将ADC值存储为一个不固定的int,但我想将其转换为ASCII字符。 在C语言中如何实现这一点? 我的int值范围为0-1023。 我试着去做
|
|
但是,它不显示1023,而是显示'/'。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好,我正在将ADC值存储为一个不固定的int,但我想将其转换为ASCII字符。 在C语言中如何实现这一点? 我的int值范围为0-1023。 我试着去做
|
但是,它不显示1023,而是显示'/'。
这是我的代码,请看一下。
#include <MSP430-h> int ADC_result; #include <stdio.h> void init_UART (); void init_led (); int main (void) { WDTCTL = WDTPW | WDTHOLD; //停止WDT INIT_UART(); init_led (); //配置GPIO //P1DIR |= BIT0; //将WFP 1.0 设置为输出方向 //P1OUT &=~BIT0; // WFP 1.0 指示灯熄灭 //配置ADC A1引脚 P1SEL0 |= BIT1; P1SEL1 |= BIL1; //禁用GPIO开机默认高阻抗模式以激活 //以前配置的端口设置 PM5CTL0 &=~LOCKLPM2; //配置ADC10 ADCCTL0 |= ADCSHT_2 | ADCON; // ADCON,S&H=16 ADC CLKS ADCCTL1 |= ADCSHP; // ADCCLK = MODOSC;采样计时器 ADCCTL2 |= ADCRES; // 10位转换结果 ADCIE |= ADCIE0; //启用ADC连接完全中断 ADCMCTLS0 || ADCINCH_1 | ADCSREF_1; // A1 ADC输入选择;参考电压=1.5V //配置参考 PMMCTL0_H = PMMPW_H; //解锁PMM寄存器 PMMCTL2 |= INTREFEN; //启用内部参考 __DELAY周期(400); //参考确定延迟 同时(1) { ADCCTL0 |= ADCENC | ADCSC; //开始采样和转换 __bis_sr_register (LPM0_BITS | GIE); // LPM0,ADC_ISR将强制退出 IF (ADC_Result < 0x155) P1OUT &=~BIT0; //清除WFP 1.0 LED关闭 否则 P1OUT |= BIT0; //将WFP 1.0 LED设置为打开 while (!(UCA0IFG & UCTXIFG));//等待USSCI_A0 TX缓冲器就绪 //char ADC_Char[16]; //sprintf (ADC_Char,"%d",ADC_Result); UCA0TXBUF = ADC_Result; __delay_cycles(5000); } }// 此函数对UART进行初始化,以便它可以具有8个数据位,无奇偶校验,1个停止位和9600 void init_UART () { //配置UART引脚 P1SEL0 || BIT6 | BIT7; //将2-UART引脚设置为第二个功能 //配置UART UCA0CTLW0 |= UCSWRST; //设置软重置启用 UCA0CTLW0 |= UCSSEL__SMCLK; //将SMCLK设置为BRCLK,用于11.52万的波特率 //波特率计算。 将波特率设置为11.52万 UCA0BR0 = 8; // 100万/115200 =11.52万 = 8.68 INT (N)= 8 UCA0MCTLW = 0xD600; // 100万/115200 -11.52万 - INT (100万/115200)11.52万)= 0.68 UCA0BR1 = 0x00; // UCBRSx值= 0xD6 UCA0CTLW0 &=~UCSWRST; //初始化eUSCI } void init_led (){ //配置GPIO P1DIR || BIT0; //将WFP 1.0 设置为输出方向 P1OUT &=~BIT0; // 编译器1.0 LED关闭}// ADC中断服务例程#if defined(__TI_Compiler_version__)|| defined(__IAR_systems_icc__)#pragma vector=ADC_vector __interrupt void ADC_ISR(void)#Elif defined(__GNUC__) void __attribute__(((interrupt (ADC_vector))#elvector))不支持#AD_else #endif { SWITCH(__EIV_IN_RANGE(ADCIV,ADCIV_ADCIFG)) { 案例ADCIV_NONE: 中断; Case ADCIV_ADCOVIFG: 中断; Case ADCIV_ADCTOVIFG: 中断; Case ADCIV_ADCHIIFG: 中断; Case ADCIV_ADCLOIFG: 中断; Case ADCIV_ADCINIFG: 中断; 问题ADCIV_ADCIFG: ADC_Result = ADCMEM0; __BIC_SR_REGISTER_ON_EXIT (LPM0_bits); //从LPM0中清除CPUOFF位 中断; 默认: 中断; } }