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.

[参考译文] CCS/MSP430FR2353:CCS/MSP430FR2353

Guru**** 2575345 points
Other Parts Discussed in Thread: MSP430FR2355

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/759674/ccs-msp430fr2353-ccs-msp430fr2353

器件型号:MSP430FR2353
主题中讨论的其他器件:MSP430FR2355

工具/软件:Code Composer Studio

我可以发送单个字符、但我希望在该程序的帮助下将字符串"Amit"等字符串发送到 RealTerm。我只想知道在该程序中发送字符串需要进行何种修改(MSP430FR2355):-

#include

void Software_Trim ();//软件调整可获得最佳 DCOFTRIM 值
#define MCLK_FREQ_MHz 1 // MCLK = 1MHz

unsigned char RXData = 0;
unsigned char TXData ='a';

int main (空)

WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

_bis_SR_register (SCG0);//禁用 FLL
CSCTL3 = SELREF_REFOCLK;//将 REFO 设置为 FLL 基准源
CSCTL1 = DCOFTRIMEN_1 | DCOFTRIM0 | DCOFTRIM1 | DCORSEL_0;// DCOFTRIM = 3、DCO 范围= 1MHz
CSCTL2 = FLLD_0 + 30;// DCODIV = 1MHz
_DELAY_CYCLES (3);
_BIC_SR_register (SCG0);//启用 FLL
Software_Trim ();//软件调整可获得最佳 DCOFTRIM 值
CSCTL4 = SELMS_DCOCLKDIV | SELA_REFOCLK;//将默认 REFO (~32768Hz)设置为 ACLK 源、ACLK = 32768Hz
//默认 DCODIV 为 MCLK 和 SMCLK 源

PM5CTL0 &=~LOCKLPM5;//禁用 GPIO 上电默认高阻抗模式
//激活先前配置的端口设置
P1DIR |= BIT0;
P1OUT &=~BIT0;// P1.0 OUT 低电平

//配置 UART 引脚
P1SEL0 |= BIT6 | BIT7;//将2个 UART 引脚设置为第二功能

//配置 UART
UCA0CTLW0 |= UCSWRST;//将 eUSCI 置于复位状态
UCA0CTLW0 |= UCSSEL_SMCLK;
//波特率计算
UCA0BR0 = 8;// 1000000/115200 = 8.68
UCA0MCTLW = 0xD600;// 1000000/115200 - INT (1000000/115200)=0.68
// UCBRSx 值= 0xD6 (请参阅 UG)
UCA0BR1=0;
UCA0CTLW0 &=~UCSWRST;//初始化 eUSCI
UCA0IE |= UCRXIE;//启用 USCI_A0 RX 中断

while (1)

while (!(UCA0IFG & UCTXIFG));
UCA0TXBUF = TXData;//将数据加载到缓冲区中

_bis_SR_register (LPM0_bits|GIE);//输入 LPM0
__no_operation();//用于调试器

空 Software_Trim ()

unsigned int oldDcotTap = 0xFFFF;
unsigned int newDcoTap = 0xFFFF;
unsigned int newDcoDelta = 0xFFFF;
unsigned int bestDcoDelta = 0xFFFF;
unsigned int csCtl0Copy = 0;
unsigned int csCtl1Copy = 0;
无符号 int csCtl0Read = 0;
无符号 int csCtl1Read = 0;
unsigned int dcoFreqTrim = 3;
unsigned char endLoop = 0;

操作

CSCTL0 = 0x100;// DCO 抽头= 256
操作

CSCTL7 &=~DCOFFG;//清除 DCO 故障标志
} while (CSCTL7 & DCOFFG);//测试 DCO 故障标志

__DELAY_CYCLLES ((unsigned int) 3000 * MCLK_FREQ_MHz);//等待 FLL 锁定状态(FLLUNLOCK)保持稳定
//建议等待24个经过分频的 FLL 参考时钟周期
while (((CSCTL7 &(FLLUNLOCK0 | FLLUNLOCK1))和&((CSCTL7 & DCOFFG)= 0));

CSCCtl0Read = CSCTL0;//读取 CSCTL0
CSCCtl1Read = CSCTL1;//读取 CSCTL1

oldDcoTap = newDcoTap;//记录上次的 DCOTAP 值
newDcoTap = csCtl0Read & 0x01ff;//这次获得 DCOTAP 值
dcoFreqTrim =(csCtl1Read & 0x0070)>>4;//获取 DCOFTRIM 值

if (newDcoTap < 256)// DCOTAP < 256

newDcoDelta = 256 - newDcoTap;// DCPTAP 和256之间的增量值
if ((oldDcotap!= 0xFFFF)&&(oldDcotap >= 256)// DCOTAP 交叉256
endLoop = 1;//停止 while 循环
其他

dcoFreqTrim --;
CSCTL1 =(csCtl1Read &(~DCOFTRIM))|(dcoFreqTrim <4);


else // DCOTAP >= 256

newDcoDelta = newDcoTap - 256;// DCPTAP 和256之间的增量值
if (oldDcoTap < 256)// DCOTAP 交叉256
endLoop = 1;//停止 while 循环
其他

dcoFreqTrim++;
CSCTL1 =(csCtl1Read &(~DCOFTRIM))|(dcoFreqTrim <4);

if (newDcoDelta < bestDcoDelta)//记录最接近256的 DCOTAP

csCtl0Copy = csCtl0Read;
csCtl1Copy = csCtl1Read;
bestDcoDelta = newDcoDelta;

}while (endLoop =0);//轮询直至 endLoop =1

CSCTL0 = csCtl0Copy;//重新加载锁定的 DCOTAP
CSCTL1 = csCtl1Copy;//重新加载锁定的 DCOFTRIM
while (CSCTL7 &(FLLUNLOCK0 | FLLUNLOCK1));//轮询直到 FLL 被锁定

#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
#pragma vector=USCI_A0_Vector
_interrupt void USCI_A0_ISR (void)
#Elif defined (_GNU_)
void __attribute__((中断(USCI_A0_Vector)) USCI_A0_ISR (void)
其他
错误编译器不受支持!
#endif

switch (__evo_in_range (UCA0IV、USCI_UART_UCTXCPTIFG))

USCI_NONE 案例:中断;
USCI_UART_UCRXIFG 案例:
UCA0IFG &=~ UCRXIFG;//清除中断
RXData = UCA0RXBUF;//清除缓冲区
if (RXData!= TXData)//检查值

P1OUT |= BIT0;//如果错误打开 P1.0
while (1);//陷阱 CPU

TXData++;//递增数据字节
_BIC_SR_REGISTER_ON_EXIT (LPM0_BITS);//在 TI 上退出 LPM0
中断;
案例 USCI_UART_UCTXIFG:中断;
案例 USCI_UART_UCSTTIFG:中断;
案例 USCI_UART_UCTXCPTIFG:中断;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amit、您好!
    正如您在代码示例中看到的、您正在使用"a"初始化 TXData。 一旦标志表明缓冲区已准备好进行另一个数据传输、这个字符就被推入 UCA0TXBUF。 如果接收到数据、TXData 将递增、因此器件将发送下一个较高的字符。 由于 TXData 在其他实例中不会改变、如果没有接收到一个字节、while 1将永久发送一个"A"。
    如果您希望传输一个字符序列、一种可能是使用 char TXData 和 char array、其中数组将由您要传输的字符组成、如"Amit"、因此 TXData[0]='A'、TXData[1]='M'等。 然后、在 TX 指令中 main 的 while (1)中、您需要递增 TXData[i]的指针、而不是将 TXData TXData[i]推入 UCA0TXBUF。 到达第4个字符后、您需要将指针 I 重置为0、并使用 TXData[0]重新启动。 这样您就可以传输"AMITAMITAMI.... "

    此致
    Peter
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amit、您好!
    您能告诉我们您的问题的状态吗? 您能解决这个问题吗? 如果您需要有关此方面的进一步支持、请告知我们。 否则、请关闭螺纹。 非常感谢。

    此致
    Peter
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    只要我在这个程序的帮助下发送字符串,我就不会在 RealTerm 上得到整个字符串。例如,当我尝试发送 Ganesha 字符串时,我 只得到 GSA。所以,请尝试帮助我解决这个问题,并告诉我在这个程序中发生了什么错误,然后 另外、请给我提供解决方案、因为我 在嵌入式系统和编程领域是绝对新的


    #include

    void Software_Trim ();//软件调整可获得最佳 DCOFTRIM 值
    #define MCLK_FREQ_MHz 1 // MCLK = 1MHz
    unsigned int i;
    unsigned char TXData []={"Ganesha"};

    int main (空)

    WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

    _bis_SR_register (SCG0);//禁用 FLL
    CSCTL3 = SELREF_REFOCLK;//将 REFO 设置为 FLL 基准源
    CSCTL1 = DCOFTRIMEN_1 | DCOFTRIM0 | DCOFTRIM1 | DCORSEL_0;// DCOFTRIM = 3、DCO 范围= 1MHz
    CSCTL2 = FLLD_0 + 30;// DCODIV = 1MHz
    _DELAY_CYCLES (3);
    _BIC_SR_register (SCG0);//启用 FLL
    Software_Trim ();//软件调整可获得最佳 DCOFTRIM 值
    CSCTL4 = SELMS_DCOCLKDIV | SELA_REFOCLK;//将默认 REFO (~32768Hz)设置为 ACLK 源、ACLK = 32768Hz
    //默认 DCODIV 为 MCLK 和 SMCLK 源

    PM5CTL0 &=~LOCKLPM5;//禁用 GPIO 上电默认高阻抗模式
    //激活先前配置的端口设置
    P1DIR |= BIT0;
    P1OUT &=~BIT0;// P1.0 OUT 低电平

    //配置 UART 引脚
    P1SEL0 |= BIT6 | BIT7;//将2个 UART 引脚设置为第二功能

    //配置 UART
    UCA0CTLW0 |= UCSWRST;//将 eUSCI 置于复位状态
    UCA0CTLW0 |= UCSSEL_SMCLK;
    //波特率计算
    UCA0BR0 = 8;// 1000000/115200 = 8.68
    UCA0MCTLW = 0xD600;// 1000000/115200 - INT (1000000/115200)=0.68
    // UCBRSx 值= 0xD6 (请参阅 UG)
    UCA0BR1=0;
    UCA0CTLW0 &=~UCSWRST;//初始化 eUSCI
    UCA0IE |= UCRXIE;//启用 USCI_A0 RX 中断

    while (1)

    while (!(UCA0IFG & UCTXIFG));
    for (i=0;i<=6;i++)

    UCA0TXBUF = TXData[i];//将数据加载到缓冲区中

    _bis_SR_register (LPM0_bits|GIE);//输入 LPM0
    __no_operation();//用于调试器

    空 Software_Trim ()

    unsigned int oldDcotTap = 0xFFFF;
    unsigned int newDcoTap = 0xFFFF;
    unsigned int newDcoDelta = 0xFFFF;
    unsigned int bestDcoDelta = 0xFFFF;
    unsigned int csCtl0Copy = 0;
    unsigned int csCtl1Copy = 0;
    无符号 int csCtl0Read = 0;
    无符号 int csCtl1Read = 0;
    unsigned int dcoFreqTrim = 3;
    unsigned char endLoop = 0;

    操作

    CSCTL0 = 0x100;// DCO 抽头= 256
    操作

    CSCTL7 &=~DCOFFG;//清除 DCO 故障标志
    } while (CSCTL7 & DCOFFG);//测试 DCO 故障标志

    __DELAY_CYCLLES ((unsigned int) 3000 * MCLK_FREQ_MHz);//等待 FLL 锁定状态(FLLUNLOCK)保持稳定
    //建议等待24个经过分频的 FLL 参考时钟周期
    while (((CSCTL7 &(FLLUNLOCK0 | FLLUNLOCK1))和&((CSCTL7 & DCOFFG)= 0));

    CSCCtl0Read = CSCTL0;//读取 CSCTL0
    CSCCtl1Read = CSCTL1;//读取 CSCTL1

    oldDcoTap = newDcoTap;//记录上次的 DCOTAP 值
    newDcoTap = csCtl0Read & 0x01ff;//这次获得 DCOTAP 值
    dcoFreqTrim =(csCtl1Read & 0x0070)>>4;//获取 DCOFTRIM 值

    if (newDcoTap < 256)// DCOTAP < 256

    newDcoDelta = 256 - newDcoTap;// DCPTAP 和256之间的增量值
    if ((oldDcotap!= 0xFFFF)&&(oldDcotap >= 256)// DCOTAP 交叉256
    endLoop = 1;//停止 while 循环
    其他

    dcoFreqTrim --;
    CSCTL1 =(csCtl1Read &(~DCOFTRIM))|(dcoFreqTrim <4);


    else // DCOTAP >= 256

    newDcoDelta = newDcoTap - 256;// DCPTAP 和256之间的增量值
    if (oldDcoTap < 256)// DCOTAP 交叉256
    endLoop = 1;//停止 while 循环
    其他

    dcoFreqTrim++;
    CSCTL1 =(csCtl1Read &(~DCOFTRIM))|(dcoFreqTrim <4);

    if (newDcoDelta < bestDcoDelta)//记录最接近256的 DCOTAP

    csCtl0Copy = csCtl0Read;
    csCtl1Copy = csCtl1Read;
    bestDcoDelta = newDcoDelta;

    }while (endLoop =0);//轮询直至 endLoop =1

    CSCTL0 = csCtl0Copy;//重新加载锁定的 DCOTAP
    CSCTL1 = csCtl1Copy;//重新加载锁定的 DCOFTRIM
    while (CSCTL7 &(FLLUNLOCK0 | FLLUNLOCK1));//轮询直到 FLL 被锁定

    #if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
    #pragma vector=USCI_A0_Vector
    _interrupt void USCI_A0_ISR (void)
    #Elif defined (_GNU_)
    void __attribute__((中断(USCI_A0_Vector)) USCI_A0_ISR (void)
    其他
    错误编译器不受支持!
    #endif

    switch (__evo_in_range (UCA0IV、USCI_UART_UCTXCPTIFG))

    USCI_NONE 案例:中断;
    USCI_UART_UCRXIFG 案例:
    UCA0TXBUF=UCA0RXBUF;
    UCA0IFG &=~ UCRXIFG;//清除中断
    _BIC_SR_REGISTER_ON_EXIT (LPM0_BITS);//在 TI 上退出 LPM0
    中断;
    案例 USCI_UART_UCTXIFG:中断;
    案例 USCI_UART_UCSTTIFG:中断;
    案例 USCI_UART_UCTXCPTIFG:中断;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amit、您好!
    您遇到这种行为的原因与您的指令序列有关:
    while (!(UCA0IFG & UCTXIFG));
    for (i=0;i<=6;i++)

    UCA0TXBUF = TXData[i];//将数据加载到缓冲区中


    "while (!(UCA0IFG & UCTXIFG);"的函数是在准备好发送下一个字符之前防止加载 TX 缓冲区。 因此、在给定的指令序列中、您会等待第一次、但在"for "循环中、您无需等待即可将以下字符推入突发中、但速度与 CPU 管理加载 TX 缓冲区的速度一样快。 因此、您需要将缓冲器上的等待放入"for "循环中、例如
    for (i=0;i<=6;i++)

    while (!(UCA0IFG & UCTXIFG));
    UCA0TXBUF = TXData[i];//将数据加载到缓冲区中

    这样、CPU 将等待、然后再将下一个字符压入 TX 缓冲区、直到前一个字符已被发送。
    与推入数据速度过快的情况一样、在 UART 模块能够传输前一个字符之前、当您多次推送时、会跳过某些字符。
    通过此更改、代码应解决此问题。

    此致
    Peter
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的帮助和支持、因为您的原因、我解决了我的问题。您能向我建议如何将 ADC 结果发送到 RealTerm:

    #include 
    void init_uart(); //初始化 UART 串行通信
    unsigned int adc_result;
    
    int main (void)
    {
    WDTCTL = WDTPW | WDTHOLD; //停止 WDT
    
    //配置 GPIO
    P1DIR |= BIT0; //将 P1.0/LED 设置为输出方向
    P1OUT &=~BIT0; // P1.0 LED 关闭
    
    //配置 ADC A1引脚
    P1SEL0 |= BIT1;
    P1SEL1 |= BIT1;
    
    //禁用 GPIO 上电默认高阻抗模式以激活
    //先前配置的端口设置
    PM5CTL0 &=~LOCKLPM5;
    
    //配置 ADC12
    ADCCTL0 |= ADCSHT_2 | ADCON; // ADCON、S&H=16 ADC 时钟
    ADCCTL1 |= ADCSHP; // ADCCLK = MODOSC;采样定时器
    ADCCTL2 &=~ADCRES; //清除 ADCCTL 中的 ADCRES
    ADCCTL2 |= ADCRES_2; // 12位转换结果
    ADCMCTL0 |= ADCINCH_1; // A1 ADC 输入选择;Vref=AVCC
    ADCIE |= ADCIE0; //启用 ADC 转换完成中断
    while (1)
    {
    while (ADCCTL1和 ADCBUSY); //等待 ADC 内核处于活动状态
    ADCCTL0 |= ADCENC | ADCSC; //采样和转换开始
    _bis_SR_register (LPM0_bits | GIE); // LPM0、ADC_ISR 将强制退出
    __no_operation(); //仅用于调试
    while (!(UCA0IFG & UCTXIFG)); //等待 USCI_A0 TX 缓冲器准备就绪
    UCA0TXBUF=ADC_Result;
    如果(ADC_RESULT < 0x7FF)
    P1OUT &=~BIT0; //清除 P1.0 LED 关闭
    其他
    P1OUT |= BIT0; //将 P1.0 LED 设置为打开
    __DELAY_CYCLES (5000);
    }
    }
    void init_uart()
    {
    //配置 UART 引脚
    P1SEL0 |= BIT6 | BIT7; //将2个 UART 引脚设置为第二个功能
    //配置 UART
    UCA0CTLW0 |= UCSWRST; //软设置复位使能
    UCA0CTLW0 |= UCSSEL_SMCLK; //将 SMCLK 设置为 BRCLK 以用于115200的波特率
    //波特率计算。 将波特率设置为115200
    UCA0BR0 = 8; // 1000000/115200 = 8.68 INT (N)= 8
    UCA0MCTLW = 0xD600; // 1000000/115200 - INT (1000000/115200)=0.68
    UCA0BR1 = 0x00; // UCBRSx 值= 0xD6
    UCA0CTLW0 &=~UCSWRST; //初始化 eUSCI
    }
    
    // ADC 中断服务例程
    #if defined (__TI_Compiler_version__)|| defined (__IAR_systems_ICC__)
    #pragma vector=ADC_vector
    __interrupt void ADC_ISR (void)
    #Elif defined (__GNU__)
    _ define (interrupt (interrupt (ADC_vector)
    #else)#error
    !
    #endif
    {
    switch (__evo_in_range (ADCIV、ADCIV_ADCIFG))
    {
    案例 ADCIV_NONE:
    中断;
    ADCIV_ADCOVIFG 案例:
    中断;
    案例 ADCIV_ADCTOVIFG:
    中断;
    ADCIV_ADCHIIFG 案例:
    中断;
    ADCIV_ADCLOIFG 案例:
    中断;
    ADCIV_ADCINIFG 案例:
    ADC_RESULT = ADCMEM0;
    _BIC_SR_REGISTER_ON_EXIT (LPM0_BITS);//从 LPM0清除 CPUOFF 位
    中断;
    默认值:
    中断;
    }
    }
    

    我在该计划中犯了错误、请像以前一样解决我的问题。

    再次感谢您的支持和帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    现在、我可以借助以下代码将 ADC 数据发送到 RealTerm:-

    #include 
    void init_UART();
    unsigned long int adc_result;
    int main (void)
    {
    WDTCTL = WDTPW | WDTHOLD; //停止 WDT
    init_uart();
    //配置 GPIO
    P1DIR |= BIT0; //将 P1.0/LED 设置为输出方向
    P1OUT &=~BIT0; // P1.0 LED 关闭
    
    //配置 ADC A1引脚
    P1SEL0 |= BIT1;
    P1SEL1 |= BIT1;
    
    //禁用 GPIO 上电默认高阻抗模式以激活
    //先前配置的端口设置
    PM5CTL0 &=~LOCKLPM5;
    
    //配置 ADC12
    ADCCTL0 |= ADCSHT_2 | ADCON; // ADCON、S&H=16 ADC 时钟
    ADCCTL1 |= ADCSHP; // ADCCLK = MODOSC;采样定时器
    ADCCTL2 &=~ADCRES; //清除 ADCCTL 中的 ADCRES
    ADCCTL2 |= ADCRES_2; // 12位转换结果
    ADCMCTL0 |= ADCINCH_1; // A1 ADC 输入选择;Vref=AVCC
    ADCIE |= ADCIE0; //启用 ADC 转换完成中断
    
    while (1)
    {
    while (ADCCTL1和 ADCBUSY); //等待 ADC 内核处于活动状态
    ADCCTL0 |= ADCENC | ADCSC; //采样和转换开始
    _bis_SR_register (LPM0_bits | GIE); // LPM0、ADC_ISR 将强制退出
    __no_operation();//仅用于调试
    while (!(UCA0IFG & UCTXIFG)); //等待 USCI_A0 TX 缓冲器准备就绪
    UCA0TXBUF=ADC_Result;
    如果(ADC_RESULT < 0x7FF)
    P1OUT &=~BIT0; //清除 P1.0 LED 关闭
    其他
    P1OUT |= BIT0; //将 P1.0 LED 设置为打开
    __DELAY_CYCLES (5000);
    }
    }
    void init_uart()
    {
    //配置 UART 引脚
    P1SEL0 |= BIT6 | BIT7; //将2个 UART 引脚设置为第二个功能
    //配置 UART
    UCA0CTLW0 |= UCSWRST; //软设置复位使能
    UCA0CTLW0 |= UCSSEL_SMCLK; //将 SMCLK 设置为 BRCLK 以用于115200的波特率
    //波特率计算。 将波特率设置为115200
    UCA0BR0 = 8; // 1000000/115200 = 8.68 INT (N)= 8
    UCA0MCTLW = 0xD600; // 1000000/115200 - INT (1000000/115200)=0.68
    UCA0BR1 = 0x00; // UCBRSx 值= 0xD6
    UCA0CTLW0 &=~UCSWRST; //初始化 eUSCI
    }
    // ADC 中断服务例程
    #if defined (__TI_Compiler_version__)|| defined (__IAR_systems_ICC__)
    #pragma vector=ADC_vector
    __interrupt void ADC_ISR (void)
    #Elif defined (__GNU__)
    _ define (interrupt (interrupt (ADC_vector)
    #else)#error
    !
    #endif
    {
    switch (__evo_in_range (ADCIV、ADCIV_ADCIFG))
    {
    案例 ADCIV_NONE:
    中断;
    ADCIV_ADCOVIFG 案例:
    中断;
    案例 ADCIV_ADCTOVIFG:
    中断;
    ADCIV_ADCHIIFG 案例:
    中断;
    ADCIV_ADCLOIFG 案例:
    中断;
    ADCIV_ADCINIFG 案例:
    中断;
    ADCIV_ADCIFG 案例:
    ADC_RESULT = ADCMEM0;
    _BIC_SR_REGISTER_ON_EXIT (LPM0_BITS); //从 LPM0清除 CPUOFF 位
    中断;
    默认值:
    中断;
    }
    }
    

    但我想在 Excel 的列中绘制 ADC 数据、由于该程序具有12位分辨率、但我仍然获得8位数据、而不是12位数据。在该程序中、我犯了错误。请向我提供建议和建议。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Amit、您好!

    我理解、从您的角度来看、所有这些都属于您的一个项目、但这与同一个特定问题无关、而是从一个项目转移到另一个项目。 我们的战略是分别处理每个具体问题。 让其他用户更轻松地搜索论坛以解决他们身边的类似问题。

    那么、您是否可以将其设置为单独的线程、描述您所面临的新问题、并针对初始问题关闭它? 非常感谢。

    此致

    Peter