Microchip在新一代的32位PIC芯片采用了一种新的架构来进行开发,这就是Harmony。 Harmony类似于ST的STM32CubeMX,将芯片Library封装到中间层,采用统一接口,仅底层不同,不过底层已经由Microchip已经写好,所以,用户上层的同一份代码,理论上稍加修改MHC配置,就可以很方便的移植,有点像Qt的意思了,一次编写,处处编译(不同于Java)。 Harmony还有一个优势,就是可以采用Dynamic驱动,同一类型的外设,仅需要一份驱动代码,非常节省空间,不过Dynamic到目前为止,还有一些瑕疵,例如PWM就没有办法实现完全Dynamic,对应的Tmr只能使用Static,若是其他的Tmr使用Dynamic,那么只能在使用PWM时,自己调用底层的PLIB_TMR来实现Static调用。这里先不讲这些。 实际上Harmony只是一个Library集合,开发仍然需要IDE,这就是MPLAB X IDE。开发工具清单如下: 1、MPLAB X IDEv3.51(集成了XC32编译器,后续版本会高于3.51) 2、Harmony_v2_02_00b(有新版本使用新版本即可) 3、com-microchip-mplab-modules-mhc.nbm(Harmony在MPLAB中调用的插件)
依次安装好1和2,对于3则要在MPLAP中安装。 打开MPLAB X IDE,Tools -> Plugins-> Downloaded -> Add Plugins 选择下载的mhc插件,勾选然后 点击Install。 MHC使用前提是:已经创建有Harmony的项目,并且设定为主项目。 MHC开启方式:Tools -> Embedded ->MPLAB Harmony Configurator
文章图片
新建Harmony项目: 1、在MPLAB X IDE 中, File -> NewProject -> Microchip Embedded -> 32-bit MPLAB Harmony Project-> Next进入Harmony 配置页。
文章图片
2、配置Harmony项目,HarmonyPath一定要选择Harmony安装的位置,到其bin、aaps这些文件夹上一层即可,ProjectLocation可以自己选择,需要注意的是,一定要与Harmony在同一分区。Project名称自己看着写,Configuration名称也是自己命名,TargetDevice选择自己正在使用的芯片型号。Target Board如无特别,最好选用CustomBoard,与BSP无关,方便后续移植到其它芯片。
文章图片
3、Finish,会默认这个项目为主项目。 4、打开MHC,Tools -> Embedded ->MPLAB Harmony Configurator。然后就可以图形化配置驱动了。
文章图片
Harmony有五个配置区:Option、Clock Diagram、Pin Diagram、Pin Setting、Pin Table。 其中三个Pin相关的配置区都是定义引脚,只是在不同功能上重点显示,Pin Diagram整个显示所有引脚直观图,哪些已经用了,哪些可用等;Pin Setting可以从已经顺序上来查看已经使用情况,以及配置引脚功能;Pin Table表示各个驱动有哪些可用引脚等。这三个可以配合使用。 Option是整个驱动配置区,Harmony FrameworkConfiguration是重点配置部分,主要是Drivers以及System Services。BSPConfiguration不用勾选,方便移植。
文章图片
以上就是开发环境的简单介绍,后续再介绍各种驱动的配置,需要注意的是,MPLAB使用的Java开发,所以效率不太高,需要一个好一点的机器,不然卡的很,我都是使用服务器进行开发的。
推荐阅读
- KEIL下载键变灰色,ST-link无法下载程序
- MCU|【PIC32MZ】Usart串口通讯
- 在STM32F103C8T6上移植UCOS系统
- MCU|【PIC32MZ】按键中断
- 7路PWM产生程序阅读
- 硬件|单片机mcu—time定时器详解
- stm32影子寄存器、预装载寄存器,TIM_OC1PreloadConfig和TIM_ARRPreloadConfig的作用
- Keil逻辑分析仪的使用