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