工具/软件:TI C/C++编译器
我在 MSP432P401r 中的链接过程中遇到错误。 我的代码如下所示
#include "ti/devices/msp432p4xx/inc/msp.h"
#include
#define Num_of 结果1100
#define ADC_TIMER1
#define ADC_TIMER_PERIOD 12000
volatile uint16_t A1Results[Num_for_Results];
int main (void){
volatile unsigned int i;
WDT_A->CTL = WDT_A_CTL_PW |//停止 WDT
WDT_A_CTL_HOLD;
P1->SEL0 |= BIT2 | BIT3;//将2-UART 引脚设置为辅助功能
//配置 UART
EUSCI_A0->CTLW0 |= EUSCI_A_CTLW0_SWRST;//将 eUSCI 置于复位状态
EUSCI_A0->CTLW0 = EUSCI_A_CTLW0_SWRST |//在复位时保持 eUSCI
EUSCI_B_CTLW0_ssel_SMCLK;//为 SMCLK 配置 eUSCI 时钟源
EUSCI_A0->BRW = 1;// 12000000/16/9600
EUSCI_A0->MCTLW =(10<< EUSCI_A_MCTLW_BRF_OFS)|
EUSCI_A_MCTLW_OS16;
EUSCI_A0->CTLW0 &=~EUSCI_A_CTLW0_SWRST;//初始化 eUSCI
P5->SEL1 |= BIT4;//为 ADC 配置 P5.4
P5->SEL0 |= BIT4;
ADC14->CTL0 = ADC14_CTL0_SHT0_6| ADC14_CTL0_ON | ADC14_CTL0_PDIV_2 | ADC14_CTL0_DIV_2 | ADC14_CTL0_ssel_4 | ADC14_CTL0_MSC| ADC14_C14_C14_C14_CTR_0;ADC14_C14_C14_CTR_C14_CTR_C14_C14_CK_0
ADC14->CTL1 = ADC14_CTL1_RES_0;//使用采样计时器、12位转换结果
ADC14->CTL0= ADC14_CTL0_SHP+ADC14_CTL0_CONSEQ_1;
ADC14->MCTL[0]|= ADC14_MCTLN_INCH_1;// A1 ADC 输入选择;Vref=AVCC
ADC14->IER0 = ADC14_IER0_IE3;//启用 ADC14IFG.3
Timer_A1->CCTL[1]=OUTMOD_3;
Timer_A1->CCR[0]=((ADC_TIMER_PERIOD)/2)-1;
Timer_A1->CCR[0]= ADC_TIMER_PERIODE-1;
ADC14->CTL0 = ADC14_CTL0_SHS_1;
ADC14->CTL0 = ADC14_CTL0_ENC;
Timer_A1->CTL |= TIMER_A_CTL_tassel_2 |// MCLK
Timer_A_CTL_MC_1;//up 模式
ADC14->CTL0 = ADC14_CTL0_SC;
__ENABLE_IRQ();
//在 NVIC 模块中启用 ADC 中断
NVIC->ISER[0]= 1 <<(ADC14_IRQn)& 31);
_no_operation();
ADC14->IER0 |= ADC14_IER0_IE0;//启用 ADC 转换完成中断
SCB->SCR &=~SCB_SCR_SLEEPONEXIT_MSK;//从 ISR 退出时唤醒
//确保 SLEEPONEXIT 立即生效
_DSB();
}
void ADC14_IRQHandler (void)
{
volatile unsigned int data;
数据= ADC14->MEM[0];
while (!(EUSCI_A0->IFG 和 EUSCI_A_IFG_TXIFG));
//回显接收到的字符
EUSCI_A0->TXBUF =数据;
}
