最近这几天一直在研究ATSAMD51开发板,刚开始准备用KEIL来测评,把文件导进去有很多要改的地方,感觉很费神,必境想多保留几根头发,请关爱程序员
今天晚上终于用MPLAB X IDE 研究通了,可以下载了,可以调试了,下面看我的经过。
1、IDE下载与安装:
连接:https://www.microchip.com/en-us/tools-resources/develop/mplab-x-ide
这个里面有WINDOWS LINUX MACOS,我当然是下载windows的啊。
安装的时候一直下一步下一步,什么都没有更改。
再来安装编译器:
连接:http://www.burnon.com/software.html
我想是没有记错的,就是这个XC32.
关键在下图,不是安装好了,就完事了,还要添加才能玩。
Tools >> Options >> Embedded >> Build Tools
对了还得上一个连接,就是这个连接帮了我好大的忙:
http://www.microchip.com.cn/newcommunity/index.php?m=Knowledge&a=show&id=316
ADC是在PA02也就是9脚。
串口:是PB24,PB25,TX RX.
最后串口就接到了SAMD21E18A-MUT这个MCU上。
3、代码:
POT:
这个是ADC的
PORT_REGS->GROUP[0].PORT_PINCFG[2] = 0x1;
这个是串口的:
PORT_REGS->GROUP[1].PORT_PINCFG[24] = 0x1;
PORT_REGS->GROUP[1].PORT_PINCFG[25] = 0x1;
下面是MAIN中的:
每个模块的初始化。
SYS_Initialize ( NULL );
串口进去就打印:
printf("\n\r--get into--");
printf("\n\r");
printf("\n\r ADC Sample Demo ");
printf("\n\r");
printf("\n\r--going on--\n\r");
ADC开始:
ADC0_Enable();
定时器开始:
SYSTICK_TimerStart();
回调外部中断15
EIC_CallbackRegister(EIC_PIN_15, switch_handler, (uintptr_t) NULL);
写入值
DAC_DataWrite(DAC_CHANNEL_0, dac_count);
while (1)
{
/* Start ADC conversion */
ADC0_ConversionStart();
/* Wait till ADC conversion result is available */
while(!ADC0_ConversionStatusGet())
{
};
/* Read the ADC result */
adc_count = ADC0_ConversionResultGet();
input_voltage = (float)adc_count * ADC_VREF / 4095U;
printf("ADC Count = 0x%03x, ADC Input Voltage = %d.%02d V \r", adc_count, (int)input_voltage, (int)((input_voltage - (int)input_voltage)*100.0));
printf("\n\r");
SYSTICK_DelayMs(500);
}
4、最后再来一个IDE的操作
目前我只用了这两个,编译,和编程。
右击工程也是一样的。
再来个跳转:
以上都是我的经验,分享一下,不足的麻烦指出改正,谢谢。