Curiosity PIC32MZEF学习教程:最简单的IO端口测试

Curiosity PIC32MZEF学习教程:最简单的IO端口测试,第1张

本篇来进行最简单的IO端口测试,编写软件控制板卡上的LED灯闪烁。

• 可单独使能/禁止输出引脚的漏极开路

• 可单独使能/禁止输入引脚的弱上拉和下拉

• 监视选择性输入并在检测到引脚电平状态发生变化时产生中断

• 可在休眠和空闲模式下继续工作

• 可使用CLR、SET和INV寄存器进行快速位 *** 作

先来看看IO口的内部框图,看起来很复杂的样子

Curiosity PIC32MZEF学习教程:最简单的IO端口测试,1,第2张

作为数字I/O,所有端口引脚都有最多14个与其 *** 作直接关联的寄存器。数据方向寄存器(TRISx)决定引脚是输入还是输出。如果数据方向位为1,则引脚为输入。复位后,所有端口引脚均定义为输入。读锁存器(LATx)时,读到的是锁存器中的值;写锁存器时,写入的是锁存器。读端口(PORTx)时,读到的是端口引脚的值;而写端口引脚时,写入的是锁存器。

打开MPLAB X IDE,建立基于Harmony的工程,Harmony里面生成的文件都是基于库 *** 作的,简单点,寄存器太多了, *** 作太困难

Curiosity PIC32MZEF学习教程:最简单的IO端口测试,2,第3张

Curiosity PIC32MZEF学习教程:最简单的IO端口测试,3,第4张

可配置性在 Harmony 的项目里,就是 system_config.h,system_init.c,system_tasks.c,system_interrupt.c 几个源文件的 体现,如下图:

Curiosity PIC32MZEF学习教程:最简单的IO端口测试,4,第5张

Harmony在设计之初就充分考虑了项目的可配置性,让同样的应用代码或者软件库可以在不同的硬件(或软件)配置上运行,同时也让 MHC 有了用武之地,并且代码结构非常规范、易读。

时钟等配置都采取默认的,我们拿RE3口做实验,板卡上的RE3是控制一个发光二极管LED1,高电平亮,低电平灭。因为选择的对应的板卡配置,所以默认都是对的。

Curiosity PIC32MZEF学习教程:最简单的IO端口测试,5,第6张

Curiosity PIC32MZEF学习教程:最简单的IO端口测试,6,第7张

Curiosity PIC32MZEF学习教程:最简单的IO端口测试,7,第8张

直接点生成工程,在工程里打开app.c文件

Curiosity PIC32MZEF学习教程:最简单的IO端口测试,9,第9张

因为mian里面的主循环在app.c里的APP_Tasks函数,在函数里增加如下语句

Curiosity PIC32MZEF学习教程:最简单的IO端口测试,10,第10张

BSP_LEDToggle(BSP_LED_1);控制LED1引脚的电平翻转

延时的函数按照主频200MHZ算的话,大概1S多

BSP_LEDToggle跳转到的函数是PLIB_PORTS_PinToggle,这个函数的功能就是把对应哪个端口的哪个位进行电平翻转。在对应文件ports_p32mz2048efm100.h文件中

编译程序,下载,可以看到板卡上的LED红色灯在慢慢的闪烁

Curiosity PIC32MZEF学习教程:最简单的IO端口测试,11,第11张

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2639243.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-12
下一篇 2022-08-12

发表评论

登录后才能评论

评论列表(0条)

保存