首页 » 智能 » 国产BLE芯片横空出世盘它势在必行-做MCU设备GPIO_代码_按键

国产BLE芯片横空出世盘它势在必行-做MCU设备GPIO_代码_按键

少女玫瑰心 2024-11-15 15:02:08 0

扫一扫用手机浏览

文章目录 [+]

► CortexM3-96MHz主频

► 内置最大128Mb Flash来存储用户程序、数据和UI素材

国产BLE芯片横空出世盘它势在必行-做MCU设备GPIO_代码_按键 国产BLE芯片横空出世盘它势在必行-做MCU设备GPIO_代码_按键 智能

► 内置150KB ROM存放BLE Profile & GATT, LM, LC

国产BLE芯片横空出世盘它势在必行-做MCU设备GPIO_代码_按键 国产BLE芯片横空出世盘它势在必行-做MCU设备GPIO_代码_按键 智能
(图片来自网络侵删)

► 内存容量大,64KB SRAM+2MB PSRAM

► 内置PMU,包含1路200mA的charger,1路100mA LDO

► 片上资源丰富,USB-OTG / DMA / QSPI2 / I8080 / SPI / UART / I2C / ADC8 / PDM等

► 吸收灵敏度-97dbm, Tx Power 10dbm, Support External PA

► BLE保持蓝牙连接均匀电流 < 25uA@1S

► 外围电路极简,低本钱BOM

► 支持LVGL,Free-RTOS

价格也非常精良:问厂商2.5~5元旁边,看量价格不等。

管脚定义及运用

笔者以FR8003芯片为MCU主控器件,该芯片为3X3ms封装,可编程IO数量统共有12个来掌握DSP模块,如下定义:

MCU管脚定义图

值得赞赏的是FR8000 系列芯片不同的型号封装出不同数量的 GPIO,但是GPIO 的利用方法都是同等的,而每个GPIO 都可以复用身分歧的功能,并且具有外部中断、唤醒等功能。
以是用户利用GPIO非常方便。

配置GPIO解释

在《FR8000 SDK 用户手册 V1.1.pdf》手册中,指出配置GPIO输出、输入、高下拉、外部中断的参考例程:

图1 GPIO利用方法

代码实战

配置 BUTTON_PRO 程序键

BUTTON_VB+ 音量+键

BUTTON_VB- 音量-键

// 按键 PD7 PC2 PC3 exti_enable

system_set_port_mux(GPIO_PORT_D, GPIO_BIT_7, PORTD7_FUNC_D7);

system_set_port_mux(GPIO_PORT_C, GPIO_BIT_2, PORTC2_FUNC_C2);

system_set_port_mux(GPIO_PORT_C, GPIO_BIT_3, PORTC3_FUNC_C3);

system_set_port_pull(GPIO_PD7, GPIO_PULL_UP, true);

system_set_port_pull(GPIO_PA4, GPIO_PULL_UP, true);

system_set_port_pull(GPIO_PA5, GPIO_PULL_UP, true);

exti_enable(GPIO_PD7|GPIO_PC3|GPIO_PC2);

NVIC_EnableIRQ(GPIO_IRQn);

// 按键PD7 PC2 PC3 wakeup

pmu_set_pin_pull(GPIO_PORT_D, GPIO_PIN_7, GPIO_PULL_UP);

pmu_set_pin_pull(GPIO_PORT_C, GPIO_PIN_2, GPIO_PULL_UP);

pmu_set_pin_pull(GPIO_PORT_C, GPIO_PIN_3, GPIO_PULL_UP);

pmu_port_wakeup_func_set(GPIO_PORT_D, GPIO_PIN_7);

pmu_port_wakeup_func_set(GPIO_PORT_C, GPIO_PIN_2);

pmu_port_wakeup_func_set(GPIO_PORT_C, GPIO_PIN_3);

button_init(GPIO_PD7|GPIO_PC3|GPIO_PC2);

NVIC_EnableIRQ(PMU_IRQn);

配置 OUT_VC+ 掌握5920VC按键

OUT_VC- 掌握5920VC按键

OUT_VC+与OUT_VC-设置为高电平输出

//开总线

__SYSTEM_GPIO_CLK_ENABLE();

// 设置成输出 PA4 PA5

GPIO_InitTypeDef GPIO_Handle;

// Output

GPIO_Handle.Pin = GPIO_PIN_4|GPIO_PIN_5;

GPIO_Handle.Mode = GPIO_MODE_OUTPUT_PP;

gpio_init(GPIO_A, &GPIO_Handle);

gpio_write_pin(GPIO_A, GPIO_PIN_4, GPIO_PIN_SET);

gpio_write_pin(GPIO_A, GPIO_PIN_5, GPIO_PIN_SET);

以上代码配置了IO外部中断、IO唤醒、IO输出、IO输入等方法,基本知足大部分GPIO设置需求,用户可以直接拷贝代码,放在系统初始化中即可,这都是笔者发大量韶光测试通过的代码,为你节省开拓韶光。

一个易学易懂的代码,不须要过多的表明,接口本身便是解释。

标签:

相关文章