本文主要是介绍SYD8811 GPIO21管脚用作RESET复位功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
从SYD8811的“SYD8811_pinmux_table”文档(“比如SDK下面的这个文档Documentation\SYD8811_pinmux_table_20200114 155924.xlsx”)中我们可以看到SYD8811的GPIO21是有复位功能的。只不过芯片在上电的时候默认设置为GPIO功能,所以一般情况下GPIO21拉低是不会复位的。
想要打开GPIO21的复位功能要做两个事情:
-
关闭GPIO21的上拉功能,在上图中我们可以看到GPIO21对应PAD27,所以gpio_init函数中默认关闭上拉:
-
把GPIO21设置为复位功能,如下:
注意:因为ble_init中的BleInit函数会进行一系列的初始化,所以想要gpio_init函数里面的配置有效,gpio_init函数必须晚于ble_init函数调用!
因为测试过程中会产生复位,所以这里使用串口打印的方式来测试复位功能,而不是RTT(RTT在复位的时候上位机需要再次设置地址),这里打开串口打印:
经过上面的设置后在GPIO21上挂一个按键,按下然后放开按键后可以看到芯片被复位了.
注意:在连线后协议栈会重新调用ble_init,所以断线后要么重新配置GPIO21的复位功能,要么让原厂修改4k文件,这样代码就不需要增加了
本文例程已经放到SDK中,请从该目录获取:“SYD8811_SDK\Source Code\SYD8811_peripheral_misc\SYD8811_BLE_Reset_at_Gpio21”
这篇关于SYD8811 GPIO21管脚用作RESET复位功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!