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

本篇来进行最简单的io端口测试,编写软件控制板卡上的led灯闪烁。
以下是i/o端口的一些主要特性:
• 可单独使能/禁止输出引脚的漏极开路
• 可单独使能/禁止输入引脚的弱上拉和下拉
• 监视选择性输入并在检测到引脚电平状态发生变化时产生中断
• 可在休眠和空闲模式下继续工作
• 可使用clr、set和inv寄存器进行快速位操作
先来看看io口的内部框图,看起来很复杂的样子
作为数字i/o,所有端口引脚都有最多14个与其操作直接关联的寄存器。数据方向寄存器(trisx)决定引脚是输入还是输出。如果数据方向位为1,则引脚为输入。复位后,所有端口引脚均定义为输入。读锁存器(latx)时,读到的是锁存器中的值;写锁存器时,写入的是锁存器。读端口(portx)时,读到的是端口引脚的值;而写端口引脚时,写入的是锁存器。
打开mplab x ide,建立基于harmony的工程,harmony里面生成的文件都是基于库操作的,简单点,寄存器太多了,操作太困难
可配置性在 harmony 的项目里,就是 system_config.h,system_init.c,system_tasks.c,system_interrupt.c 几个源文件的 体现,如下图:
harmony在设计之初就充分考虑了项目的可配置性,让同样的应用代码或者软件库可以在不同的硬件(或软件)配置上运行,同时也让 mhc 有了用武之地,并且代码结构非常规范、易读。
时钟等配置都采取默认的,我们拿re3口做实验,板卡上的re3是控制一个发光二极管led1,高电平亮,低电平灭。因为选择的对应的板卡配置,所以默认都是对的。
直接点生成工程,在工程里打开app.c文件
因为mian里面的主循环在app.c里的app_tasks函数,在函数里增加如下语句
bsp_ledtoggle(bsp_led_1);控制led1引脚的电平翻转
延时的函数按照主频200mhz算的话,大概1s多
bsp_ledtoggle跳转到的函数是plib_ports_pintoggle,这个函数的功能就是把对应哪个端口的哪个位进行电平翻转。在对应文件ports_p32mz2048efm100.h文件中
编译程序,下载,可以看到板卡上的led红色灯在慢慢的闪烁

消防装备管理系统
科赋CRAS V RGB DDR5-7600内存评测
加密货币和区块链的监管给政府带来了很多潜在的问题
【虹科方案】1+1>2:合作构建高性能的共享存储解决方案
主打速度的华为荣耀v9重度使用半月后还敢说是速度担当吗?看看再买!
Curiosity PIC32MZEF学习教程:最简单的IO端口测试
小米MIX2S深度评测:小米最强拍照+性能超强
Kionix推出最小最薄的加速度传感器
什么是开关量?开关量什么意思?开关量的由来与应用分解
双碳目标下新能源消纳能力提升方法研究
荣耀MagicBook2019锐龙版魔幻体验 相信没有多少人能抵御它的魅力
用于PCB制造的新版Open ODB ++智能产品模型怎么样
如何正确安装CB收音机
福建铁塔动环监控系统可对基站内设备实现遥测等全方位的监控
可用于汽车灯具和电器件的霍尔开关AH510
分离式液位传感器在饮水机设备的应用
虹科免拆诊断 | 2010款雪佛兰科鲁兹车发动机怠速时车身振动明显
五分钟了解日产新阳光尊贵版
TomTom已经开始将重点放在对无人驾驶所需要的高精地图进行投资上
美国人工智能突破性进展:特朗普后知后觉,华府和硅谷心急如焚