[PIC®/AVR®/dsPIC®产品] 【CuriosityNano评测报告】+MikroBUS OLED显示及噪声检测

[复制链接]
36123|73
 楼主| AINZGOWN 发表于 2021-7-27 14:39 | 显示全部楼层 |阅读模式
本帖最后由 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都在其中。

常用的指令都整合好了,直接调用即可。

因此,主程序设计并不麻烦,程序流程图如下
主要代码如下

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

  9.     // Enable the Global Interrupts
  10.     INTERRUPT_GlobalInterruptEnable();

  11.     // Disable the Global Interrupts
  12.     //INTERRUPT_GlobalInterruptDisable();
  13.     while (1)
  14.     {
  15.         // Add your application code
  16.         while(SWITCH_GetValue()==0)
  17.         {
  18.             sleep_time = 0;
  19.             oledC_DrawRectangle(0,0,95,95,OLEDC_COLOR_WHITE);//清屏
  20.             oledC_example();                                 //初始画面
  21.             RESET();                                         //按键中断,物理复位
  22.             oledC_DrawString(10,60,1,1,"Noise detect!",OLEDC_COLOR_GREEN);
  23.             
  24.             //oledC_DrawCircle(47,47,20,OLEDC_COLOR_GREEN);
  25.         }
  26.         // LED_SetLow();
  27.         if(NOISE_IsNoisy())                                  //噪声检测,判断是否有噪声
  28.         {
  29.               sleep_time = 0;                                //手动喂狗
  30.               do{//oledC_clearScreen();
  31.                 oledC_DrawRectangle(0,20,95,75,OLEDC_COLOR_WHITE);//显示噪声界面
  32.                 //printf("There is a lot of noise!");
  33.                 oledC_DrawCircle(47,42,13,OLEDC_COLOR_RED);
  34.                 oledC_DrawString(17,58,2,2,"Noisy!",OLEDC_COLOR_RED);
  35.               __delay_ms(10000);                             //十秒后重新检测
  36.               }while(NOISE_IsNoisy());
  37.               __delay_ms(2000);  
  38.               RESET();
  39.         }
  40.         else
  41.         {

  42.             __delay_ms(4000);               
  43.             oledC_DrawRectangle(0,58,95,74,OLEDC_COLOR_WHITE); //手动动画
  44.             __delay_ms(2000);
  45.             oledC_DrawString(10,60,1,1,"Noise detect!",OLEDC_COLOR_GREEN);
  46.             __delay_ms(4000);                              
  47.             sleep_time ++;                                  //看门狗时间增加
  48.             if(sleep_time >= 4)
  49.             {
  50.                 sleep_time = 0;                             //出现看门狗异常,重置单片机
  51.                 RESET();
  52.             }
  53.         }
  54.             
  55.         if(sleep_time == 3)                                 //时间==3(即30s)
  56.         {
  57.                 //sleep_time = 0;
  58.                 oledC_DrawRectangle(0,0,95,95,OLEDC_COLOR_BLACK);//黑屏
  59.                 Sleep();                                    //进入低功耗睡眠模式
  60.                 __nop();   
  61.         }
  62.       
  63.     }
  64. }
接下来烧录,看实际效果。

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

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

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

总体来说,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的驱动程序
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

70

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部