[活动] 【CY8CPROTO-063-BLE】4.一些GPIO操作

Tristan_C   2024-1-10 19:51 楼主
一些GPIO操作
通过前面几个体验,已经感受到Infinenon的这个开发环境确实比较强大,开发起来很方便顺手,这次就来体验一下GPIO的一些开发,由简单的先开始。
首先打开PSoC Creator之后,选择打开一个例程,搜索PSoC 63芯片,并通过GPIO过滤。点击打开第二个,GPIO_Pins这个demo code
194135c0p9c0kl0n7dfcfd.png
创建后整体框架如下
194135bo78fsio9xnn9wom.png
其中原理图部分的细节如下图所示,其中代码:
  1. 创建了一个按钮接到P0_4,从图中看,外部没有上下拉电阻,应该是需要内部下拉,高电平为按下状态。
  2. 创建了两个LED,分别接到P0_3和P11_1,各接了一个10K的电阻,高电平点亮。
  3. 创建了一个全局信号,用于Port0的中断,看起来就是给按钮这个IO使用了,也就是说按钮使用了 中断方式了。
194135xbhjb9tqbbys5sdd.png
而在这里同样还是给工程重新选择一下所使用的芯片型号也就是如下选中的BLE模块
194135t2t2g1gdzmv20m4f.png
再回过去看工程和代码
首先看下M0和M4内核各自的代码
其中M0的代码可以看出来,其并灭有执行应用相关的内容。
194135qlrj4rsplorrdcrc.png
而应用部分的代码则均在M4核上面执行了
194135lkxge0c63j6g3o08.png
再细看代码,按钮引脚主要使用了中断方式设计
194135q8r8ygmayr0sh0jr.png
并在main函数中根据中断状态延时取反LED的IO口状态从而控制蓝色LED的亮灭
194135jlb9rvbznbnnun9l.png
而红色LED则是在上电初始化的时候根据按钮状态直接保持亮或者灭的状态了
194135spi73qarq0gag03y.png
尝试编译会出现比较多的错误提示,都是IO口问题,这时候就需要回到硬件的对应关系上了
194135ymzcqcaqfzqw36c1.png
根据如下开发板实际的硬件原理图中,两颗LED和按钮的设计
194135nng8ub8nga61pjag.png
194135b58r3ij08e6z7rm5.png
重新对GPIO进行分配
194135qkkcekx2jyjx3xcq.png
改为
194135gol7g9v9hs7iqvoe.png
而按钮格局实际图纸,将上上升沿改成下降沿,并去掉内部上下拉电阻,使用外部上拉。
194135gf7f7a8z9mtgpqt8.png
编译下载到芯片。
194135axm2var5apftd8x5.png
然后用收按按钮可以控制LED的亮起
194135q8c95o0dovvhc461.png
194135eeulekmfyfkzf0p9.png
实际上从这里也看得出来,这颗芯片平台还是非常灵活和开放的,两个内核基本完全开放给用户使用,包括BLE协议栈,运行在哪个内核也交由了用户选择,开放程度还是相当有诚意了。
CE220263_GPIO_Pins01.rar (5.57 MB)
(下载次数: 2, 2024-1-10 19:55 上传)
本帖最后由 Tristan_C 于 2024-1-10 19:55 编辑

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复