两只袜子 发表于 2021-2-18 11:01

如何测试gpio口的默认状态_雅特力AT32单片机开发笔记GPIO

由于最近工作较忙,项目进度也比较赶,所以未能及时更新公众号。以后我会及时更新一些开发技巧,以及一些优秀的工具及软件推送。       我最近在一个项目上用的是AT32系列的MCU,为国内的芯片软件,为重庆雅特力研发制造。该MCU相对于STM32来说,价格相对来说较低,功能相对来说,可以满足一些程序量不是特别大,但是功能相对来说,较为丰富的产品上。官方网站有相对应的资料。官方网站为:http://www.arterytek.com/index.jsp。官网未提供对应的BSP代码,具体可从百度网盘上下载:https://pan.baidu.com/s/1BQQz91QhJcyPF-mLMIsPJwpassword: t3io。      接下来,我将从基本外设谈起,分多个**,来说一些在应用过程中的一些经验,想法等等。      本章节先说GPIO,相对来说基本的GPIO来说,配置比较简单。但是32位机同51单片机不一样,IO有多种模式。      每个MCU均有引脚图,AT32的也不例外。如下图所示:此为引脚图,另外下面还有对应的表格,由于比较庞大,因此只截取一部分。一、引脚控制逻辑代码    同STM32类似,相对引脚有多种状态,具体引脚状态如下所示:先宏定义引脚的信息,便于修改://充电中 #define   PIN_BAT_CHARGING      GPIO_Pins_13#define   PORT_BAT_CHARGING      GPIOC#define   RCC_BAT_CHARGING      RCC_APB2PERIPH_GPIOC然后为引脚的配置 ,如下所示。结构体配置如下:GPIO_InitType GPIO_InitStructure;    //充电中   IORCC_APB2PeriphClockCmd(RCC_BAT_CHARGING, ENABLE);GPIO_StructInit(&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pins = PIN_BAT_CHARGING;         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_2MHz;   //IO电平翻转GPIO_Init(PORT_BAT_CHARGING, &GPIO_InitStructure);基本在初始化中调用该函数,即可实现IO的初始化。二、IO功能复用如果需要用到除普通IO之外的功能,或者重映射,则需要配置为其它功能。如下所示,JTAG中一些脚,配置成了普通IO口GPIO_PinsRemapConfig(AFIO_MAP7_SWJTAG_0010,ENABLE);三、IO其它注意事项1、JTAG默认为使能的,如果配置成普通IO,需要先关闭JTAG功能。也可以只关JTAG,保留SWD功能,此种功能比较常用一些。具体寄存器配置如下:2、PC14 PC15引脚使用PC14、PC15默认不是用作普通IO口的,使用时应注意。具体代码如下,需要在初始化中调用。RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_GPIOB | RCC_APB2PERIPH_AFIO, ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1PERIPH_PWR, ENAB
页: [1]
查看完整版本: 如何测试gpio口的默认状态_雅特力AT32单片机开发笔记GPIO