前言:
换了块板子继续搞起来,资料难找,必须详细记一记。
一、硬件部分
LED 接口
由原理图可知
LED1、LED4 连接在 GPIO_C7、GPIO_C13
LED2、LED3 连接在 GPIO_F3、GPIO_F1
按键接口
由原理图可知
K1、 K2、K3 、K4 分别连接在 GPIO_D6、GPIO_D5、GPIO_A10、GPIO_A9
二、软件部分
1. LED 闪烁
新建工程界面
新建工程,新建工程界面如下图所示,创建新的 PE 工程可以看前面的文章。
打开 Processor Expert 界面
在菜单栏找到 Processor Expert 选项,点击该选项,点击 Show Views,出现界面右侧所示的界面框,点击 Components Library,找到 CPU Internel Peripherals,在该目录下,点开Port I/O 组件,如下图所示界面。
添加位 ( BitIO ) 模块
在组件库 Components Library 选项框内的文件找到 BitIO 模块并添加到该工程中,并配置该组件。
在组件查看器 Component Inspector 选项框内配置相关参数
上拉电阻 Pull resistor 设置为上拉 pull up
开漏 Open drain 设置为推挽 push-pull
驱动强度 Drive strength 设置为高 High
转换速率 Slew rate 设置为快 Fast
端口方向 Direction 设置为输出 Output
在组件 Components 选项框内,点击图标生成处理器专家代码。
在 Component Inspector 选项框中的Methods 中选择对应的函数是否生成,如下图所示
在上述生成的函数中
GetVal 获取输入输出的值
PutVal 设置输出的状态
ClrVal 设置输出值为 0 ,GPIO 输出电平为低
SetVal 设置输出值为 1 ,GPIO 输出电平为高
NegVal 将输出的状态取反
修改相应代码并下载
在主函数中添加如下图所示代码,编译下载到板子,按下复位后,板上对应的 LED1 开始闪烁。
2. 按键控制 LED 亮灭
添加按键控制模块
在 LED 闪烁的基础上添加按键控制的组件,与上述添加位( BitIO ) 模块相似
配置按键模块
按键 1 的端口位于 GPIOD6,将该模块名称修改为 Key1 ,端口的设置位 GPIO_D6 ,拉电阻一般设置为上拉,模式设置为推挽,因为是输入驱动能力可设置为低,最重要的是端口的方向设置为输入 input 。
相关配置如下图所示:
函数初始化设置
如下图所示,灰色的为默认不可修改
GetVal 获取输入输出的值
配置好相应的参数后,在 Components 功能界面,点击生成代码。
修改相应代码并下载
在主函数中添加如下图所示代码,编译下载到板子,按下复位后,实现按键控制 LED 的亮灭。
3. 按键触发外部中断控制 LED 亮灭
添加外部中断模块
在上述的基础上添加外部中断 ExtInt 模块,如下图所示。
配置外部中断模块
在 Component 修改外部中断模块的名字为 ExtInt。
在 Pin 选项中选择相应按键的端口,此处我们选择按键二对应的端口 GPIO_D5。
在 Generate interrupt on 中选择对应中断触发的方式,上升沿、下降沿、双边沿、电平触发等,触发条件。此处我们选择上升沿触发。
在 Interrupt priority 中选择对应的中断优先级,此处默认即可。
在 Enabled in init . code 选项中,为是否在初始化代码中使能中断。
函数初始化设置
Enable 使能外部中断
Disable 禁用外部中断
GetVal 获取引脚的输入状态
SetEdge 设置中断触发条件
EntInt_OnInterrupt 中断处理函数
如下图所示点击对应图标生成模块配置代码
修改相应代码并下载
打开 Events.c 文件在对应的中断处理函数中添加代码,如下图所示,编译下载到板子,按下复位后,实现按键控制 LED 的亮灭。