打印
[PIC®/AVR®/dsPIC®产品]

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

[复制链接]
32991|73
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 AINZGOWN 于 2021-7-27 14:43 编辑

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

这次使用的主控芯片是MicroChipPIC18F57Q43,模块有MikroBUSOLEDCNoisy 模块。


软件部分采用MPLABX V5.45MCC更新后可以安装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系列单片机的一个入门或者进阶应用。
工程文件附在文末。

OLEDC.X.zip

1.31 MB

使用特权

评论回复
沙发
lcczg| | 2021-7-29 11:05 | 只看该作者
很好的声控应用

使用特权

评论回复
板凳
chenjun89| | 2021-8-3 08:15 | 只看该作者
这套开发板配置多

使用特权

评论回复
地板
everyrobin| | 2021-8-4 22:27 | 只看该作者
这些资料太全了!!!                 

使用特权

评论回复
5
febgxu| | 2021-8-4 22:28 | 只看该作者
  应用还是很广泛的                                 

使用特权

评论回复
6
jkl21| | 2021-8-4 22:28 | 只看该作者
分享的资料很高端呢。                                    

使用特权

评论回复
7
mmbs| | 2021-8-4 22:28 | 只看该作者
回复查看一下相关的内容。                                 

使用特权

评论回复
8
hearstnorman323| | 2021-8-4 22:28 | 只看该作者
楼主太好了,非常感谢            

使用特权

评论回复
9
sheflynn| | 2021-8-4 22:28 | 只看该作者
共享的资料比较详细  谢谢                                 

使用特权

评论回复
10
alvpeg| | 2021-8-4 22:28 | 只看该作者
谢谢你共享的资料                                 

使用特权

评论回复
11
aspoke| | 2021-8-4 22:28 | 只看该作者
资料的确是很全面                                 

使用特权

评论回复
12
backlugin| | 2021-8-4 22:28 | 只看该作者
相当全的资料,很适合初学者                                 

使用特权

评论回复
13
sdlls| | 2021-8-4 22:28 | 只看该作者
很详细的开发板资料                                 

使用特权

评论回复
14
sesefadou| | 2021-8-11 16:45 | 只看该作者
外设模块吗   

使用特权

评论回复
15
earlmax| | 2021-8-11 16:45 | 只看该作者
这个地板确实看着不错。   

使用特权

评论回复
16
maudlu| | 2021-8-11 16:46 | 只看该作者
Curiosity Nano性能怎么样  

使用特权

评论回复
17
mattlincoln| | 2021-8-11 16:46 | 只看该作者
MikroBus是什么模块?

使用特权

评论回复
18
mollylawrence| | 2021-8-11 16:46 | 只看该作者
这个是申请的设备吗   

使用特权

评论回复
19
geraldbetty| | 2021-8-11 16:46 | 只看该作者
PIC18F57Q43        

使用特权

评论回复
20
macpherson| | 2021-8-11 16:47 | 只看该作者
学习一下oled的驱动程序

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

70

帖子

1

粉丝