AINZGOWN 发表于 2021-7-27 14:39

【CuriosityNano评测报告】+MikroBUS OLED显示及噪声检测

本帖最后由 AINZGOWN 于 2021-7-27 14:43 编辑

Curiosity Nano Adapter是一款用于简化Curiosity Nano开发板与外设连接的硬件拓展平台,例如MikroBus模块和Xplained Pro拓展板。这次的评测报告皆基于该开发板,是一款十分适合设计一些简易项目的开发平台。
这次使用的主控芯片是MicroChipPIC18F57Q43,模块有MikroBUS的OLEDC和Noisy 模块。

软件部分采用MPLABX V5.45,MCC更新后可以安装MikroBUS的驱动库,支持大部分的模块。
想要直接使用模块,首先需要参考NANOAdapter的官方文档,查看引脚配置。
选取我们需要的模块插口,然后查看对应引脚,之后便可在MCC中进行设置。
这次评测中只用到了两个模块,我们分别插在插槽1,3上,对应的引脚设置如图。
这边需要注意,插槽的引脚有时与模块上印刷的引脚不同(例如片选引脚对应使能引脚,名字不同但功能一样,都是高电平触发,不影响使用)。配置完成后,生成代码,除了常规MCC会生成的文件外,还会额外生成模块对应的驱动,大部分使用的API都在其中。
常用的指令都整合好了,直接调用即可。
因此,主程序设计并不麻烦,程序流程图如下主要代码如下

void main(void)
{
    // Initialize the device
    SYSTEM_Initialize();
    uint8_t sleep_time = 0;   //手动设置看门狗时间
    // If using interrupts in PIC18 High/Low Priority Mode you need to enable the Global High and Low Interrupts
    // If using interrupts in PIC Mid-Range Compatibility Mode you need to enable the Global Interrupts
    // Use the following macros to:

    // Enable the Global Interrupts
    INTERRUPT_GlobalInterruptEnable();

    // Disable the Global Interrupts
    //INTERRUPT_GlobalInterruptDisable();
    while (1)
    {
      // Add your application code
      while(SWITCH_GetValue()==0)
      {
            sleep_time = 0;
            oledC_DrawRectangle(0,0,95,95,OLEDC_COLOR_WHITE);//清屏
            oledC_example();                                 //初始画面
            RESET();                                       //按键中断,物理复位
            oledC_DrawString(10,60,1,1,"Noise detect!",OLEDC_COLOR_GREEN);
            
            //oledC_DrawCircle(47,47,20,OLEDC_COLOR_GREEN);
      }
      // LED_SetLow();
      if(NOISE_IsNoisy())                                  //噪声检测,判断是否有噪声
      {
            sleep_time = 0;                              //手动喂狗
            do{//oledC_clearScreen();
                oledC_DrawRectangle(0,20,95,75,OLEDC_COLOR_WHITE);//显示噪声界面
                //printf("There is a lot of noise!");
                oledC_DrawCircle(47,42,13,OLEDC_COLOR_RED);
                oledC_DrawString(17,58,2,2,"Noisy!",OLEDC_COLOR_RED);
            __delay_ms(10000);                           //十秒后重新检测
            }while(NOISE_IsNoisy());
            __delay_ms(2000);
            RESET();
      }
      else
      {

            __delay_ms(4000);               
            oledC_DrawRectangle(0,58,95,74,OLEDC_COLOR_WHITE); //手动动画
            __delay_ms(2000);
            oledC_DrawString(10,60,1,1,"Noise detect!",OLEDC_COLOR_GREEN);
            __delay_ms(4000);                              
            sleep_time ++;                                  //看门狗时间增加
            if(sleep_time >= 4)
            {
                sleep_time = 0;                           //出现看门狗异常,重置单片机
                RESET();
            }
      }
            
      if(sleep_time == 3)                                 //时间==3(即30s)
      {
                //sleep_time = 0;
                oledC_DrawRectangle(0,0,95,95,OLEDC_COLOR_BLACK);//黑屏
                Sleep();                                    //进入低功耗睡眠模式
                __nop();   
      }
      
    }
}接下来烧录,看实际效果。

在通电后显示开机动画,如下

一段时间没噪声后息屏,进入睡眠模式

检测到噪声后,亮屏,显示有噪声

总体来说,MikroBUS作为一个开源模块,网上能买到许多官方或者第三方的模块(官方一般有MCC库支持),能够很方便的进行调试,适合新手,刚入门单片机,不知道能做些什么的时候,自己选取一些模块来进行一些简单的项目开发,而Microchip的Nano Adapter配合Curiosity Nano开发板以及Mikrobus模块是一套低成本,易于开发的开发平台,能够作为接触PIC或AVR系列单片机的一个入门或者进阶应用。
工程文件附在文末。

lcczg 发表于 2021-7-29 11:05

很好的声控应用

chenjun89 发表于 2021-8-3 08:15

这套开发板配置多

everyrobin 发表于 2021-8-4 22:27

这些资料太全了!!!               

febgxu 发表于 2021-8-4 22:28

应用还是很广泛的                                 

jkl21 发表于 2021-8-4 22:28

分享的资料很高端呢。                                    

mmbs 发表于 2021-8-4 22:28

回复查看一下相关的内容。                                 

hearstnorman323 发表于 2021-8-4 22:28

楼主太好了,非常感谢            

sheflynn 发表于 2021-8-4 22:28

共享的资料比较详细谢谢                                 

alvpeg 发表于 2021-8-4 22:28

谢谢你共享的资料                                 

aspoke 发表于 2021-8-4 22:28

资料的确是很全面                                 

backlugin 发表于 2021-8-4 22:28

相当全的资料,很适合初学者                                 

sdlls 发表于 2021-8-4 22:28

很详细的开发板资料                                 

sesefadou 发表于 2021-8-11 16:45

外设模块吗   

earlmax 发表于 2021-8-11 16:45

这个地板确实看着不错。   

maudlu 发表于 2021-8-11 16:46

Curiosity Nano性能怎么样

mattlincoln 发表于 2021-8-11 16:46

MikroBus是什么模块?

mollylawrence 发表于 2021-8-11 16:46

这个是申请的设备吗   

geraldbetty 发表于 2021-8-11 16:46

PIC18F57Q43      

macpherson 发表于 2021-8-11 16:47

学习一下oled的驱动程序
页: [1] 2 3 4
查看完整版本: 【CuriosityNano评测报告】+MikroBUS OLED显示及噪声检测