打印
[应用相关]

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

[复制链接]
521|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

由于最近工作较忙,项目进度也比较赶,所以未能及时更新公众号。以后我会及时更新一些开发技巧,以及一些优秀的工具及软件推送。

       我最近在一个项目上用的是AT32系列的MCU,为国内的芯片软件,为重庆雅特力研发制造。该MCU相对于STM32来说,价格相对来说较低,功能相对来说,可以满足一些程序量不是特别大,但是功能相对来说,较为丰富的产品上。

  官方网站有相对应的资料。官方网站为:http://www.arterytek.com/index.jsp。官网未提供对应的BSP代码,具体可从百度网盘上下载:

https://pan.baidu.com/s/1BQQz91QhJcyPF-mLMIsPJw

password: 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;    //充电中   IO  RCC_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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1917

主题

6667

帖子

8

粉丝