本帖最后由 jinglixixi 于 2022-7-13 16:35 编辑
PIC18F57Q43Curiosity Nano评估工具包是一款可随身携带的小巧开发板,并具有完整的编程和调试功能,并且预编程了固件,可立即着手开发。 该工具包是采用MPLAB® X集成开发平台和MPLAB代码配置器(MCC),来访问PIC18F57Q43上的智能模拟及独立于内核的外设。MCC是一种免费的图形化编程工具,可以配置用户应用的丰富外设和功能。 该工具包的外观如图1所示,其扩展接口是采用免焊接技术,可直接将排针别入焊孔来使用。 图1 外观 在使用USB数据线连接工具包与电脑后,除电源灯被点亮外并无太大的变化,见图2所示。 图2 上电 此时,在电脑上倒是有许多的变化,实现是电脑在自动安装驱动,然后就会弹出U盘的图标。 若打开设备管理器,还会见到新增加的虚拟串口,只是并没有什么信息输出。 图3 虚拟串口上电 由于先前曾使用过多款Microchip的产品,故电脑中装有MPLAB X IDE 其版本是v5.5,于是便下载了相应的LED例程来进行测试。 该例程的内容如下: #include "mcc_generated_files/system/system.h"
/*
Main application
*/
int main(void)
{
SYSTEM_Initialize();
INTERRUPT_GlobalInterruptEnable();
while(1)
{
__delay_ms(2000);
LED0_SetHigh();
}
}
由该工具包的引脚分配图如图4所示,从中可知LED0所连接的引脚为RF3,SW0所连接的引脚为RB4。 图4 引脚分配 由此可知,该程序的作用是当中断被触发时,LED0被点亮;平时LED0输出高电平并进行2秒的延时。 图5 测试效果 那谁来触发中断呢? 通过对中断处理函数的分析可知,是按键SW0。另外,从MCC的引脚配置上也可得到印证,将图6所示。 图6 引脚配置 也就是说当按下SW0时,LED0被点亮,因为LED0是低电平点亮,见图7所示。 void RB4_DefaultInterruptHandler(void)
{
LED0_SetLow();
}
图7 LED0电路 值得指出的是在实际操作过程中,其设计的效果并不理想,当手指悬于按键SW0上方按下时,近于无效;当手指夾于SW0右下方时,触动按键则效果明显。 那这是为什么呢? 初步考虑是用于SW0没有进行电位上拉的缘故,见图8所示。 在手指夾于SW0右下方时,会借助手指将LED0的高电位传递到SW0,故效果明显。 图8 SW0电路 那么能不能不提供中断来控制LED0呢? 当然是可以的,况且还不是一种方式。 方式1: 取出中断处理,直接输出高低电平来使LED0闪烁,其程序如下: int main(void)
{
SYSTEM_Initialize();
// INTERRUPT_GlobalInterruptEnable();
while(1)
{
__delay_ms(2000);
LED0_SetHigh();
__delay_ms(2000);
LED0_SetLow();
}
}
方式2: 直接使用函数LED0_Toggle()来实现,其程序如下: int main(void)
{
SYSTEM_Initialize();
while(1)
{
__delay_ms(2000);
LED0_ Toggle ();
}
}
这2种方式其效果是完全一致的,但似乎使用LED0_Toggle()的效率更高些。 那么使用MPLAB X IDE v5.5是不是最好呢? 在使用MCC进行配置后,会出现配置的引脚在主程序中无法使用的问题,即编译时会出现报错,无法完成编译。 最终只好将MPLAB X IDE 的版本更新到v6.0,相关的软件可使用下面的链接来下载。
- MPLAB® X IDE 6.0.0 or newer (MPLAB® X IDE 6.0)
- MPLAB® XC8 2.35.0 or newer compiler (MPLAB® XC8 2.35)
- MPLAB® Code Configurator (MCC) 5.1.0 or newer (microchip.com/mplab/mplab-code-configurator)
- MPLAB® Code Configurator (MCC) Melody 2.0.46 or newer (microchip.com/en-us/tools-resources/configure/mplab-code-configurator/melody)
- Microchip PIC18F-Q Series Device Support (1.13.211) or newer (packs.download.microchip.com/)
当在安装MPLAB X IDE v6.0之后,也呈现一个问题就是在使用MCC时,有时会出现长时间不予响应的现象,用起来有些不适。
|