4475|4

21

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

国民技术车规MCU N32A455开发板测评 - 1 - IO输入输出+板子简单介绍 [复制链接]

 
本帖最后由 裴红恩 于 2024-2-10 20:22 编辑

感谢论坛以及国民技术车规MCU提供的N32A455开发板的试用机会。

STEP 1:板子开箱-N32A455开发板一块+usb转Mini 5p数据线一根

 

STEP 2:开发板基本情况介绍
Modu 1:Mini母座连接N32G452CCL7单片机,此单片机内部集成有usb通讯接口,作为一个烧写器连接N32A455。(程序烧录调试正常,烧录与调试时候将Boot0连接与GND)
Modu 2:N32G452CCL7串口与N32A455烧写口需要短接,以及MCU3.3V以及Modu 4模块中产生的3.3V需短接。
Modu 3:Modu 4模块中产生的3.3V电源以及GND。
Modu 4:MP2359-DJ模块将12V电源转化为5V,ASM1117将5V转化为3.3V以及一个5V到ASM1117的开关(电源模块电压正常)
Modu 5:直接可以通过外部的jlink以及其他的烧写器进行程序的烧录与调试。(外部jlink连接烧录正常)
Modu 6:五个按键,一个复位按键,一个按键按下连接3.3V,三个按键按下时连接一个电阻到GND。(按键可以正常使用)

(温馨提示:烧录程序时记得将Boot改变一下)

STEP 3: IO输入输出实现简单的按键控制三色LED变色(依据官方例程更改而来)

Modu 1:IO输入采用的是n32a455_gpio头文件中的GPIO_ReadInputDataBit引脚电平读取函数,在LedKeyInit函数中进行引脚的初始化具体如:

void LedKeyInit(void)
{
		GPIO_InitType GPIO_InitStructure;//定义引脚初始化结构体
		/* Check the parameters */
    	assert_param(IS_GPIO_ALL_PERIPH(GPIOA));
		RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA, ENABLE);
		GPIO_InitStructure.Pin        = GPIO_PIN_0;//引脚名
		GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP;//工作模式
		GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
		GPIO_InitPeripheral(GPIOA, &GPIO_InitStructure);
}

Modu 2:IO口的输出采用的是对寄存器PBC以及PBSC进行操作来改变引脚电平的输出,引脚电平变低通过LedOn,引脚输出变高通过LedOff,LED引脚初始化通过LedInit函数。

/**
 * [url=home.php?mod=space&uid=159083]@brief[/url]  Turns selected Led on.
 * @param GPIOx x can be A to G to select the GPIO port.
 * @param Pin This parameter can be GPIO_PIN_0~GPIO_PIN_15.
 */
void LedOn(GPIO_Module* GPIOx, uint16_t Pin)
{
    GPIOx->PBC = Pin;
}
/**
 * @brief  Turns selected Led Off.
 * @param GPIOx x can be A to G to select the GPIO port.
 * @param Pin This parameter can be GPIO_PIN_0~GPIO_PIN_15.
 */
void LedOff(GPIO_Module* GPIOx, uint16_t Pin)
{
		GPIOx->PBSC = Pin;
}
/**
 * @brief  Configures LED GPIO.
 * @param GPIOx x can be A to G to select the GPIO port.
 * @param Pin This parameter can be GPIO_PIN_0~GPIO_PIN_15.
 */
void LedInit(GPIO_Module* GPIOx, uint16_t Pin)
{
    GPIO_InitType GPIO_InitStructure;

    /* Check the parameters */
    assert_param(IS_GPIO_ALL_PERIPH(GPIOx));

    /* Enable the GPIO Clock */
    if (GPIOx == GPIOA)
    {
        RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA, ENABLE);
    }
    else if (GPIOx == GPIOB)
    {
        RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOB, ENABLE);
    }
    else if (GPIOx == GPIOC)
    {
        RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOC, ENABLE);
    }
    else if (GPIOx == GPIOD)
    {
        RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOD, ENABLE);
    }
    else if (GPIOx == GPIOE)
    {
        RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOE, ENABLE);
    }
    else
    {
    }

    /* Configure the GPIO pin */
    if (Pin <= GPIO_PIN_ALL)
    {
        GPIO_InitStructure.Pin        = Pin;
        GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitPeripheral(GPIOx, &GPIO_InitStructure);
    }
}

 

STEP 3:main函数如下所示
int main(void)
{
    LedInit(PORT_GROUP2, LED1_PIN | LED2_PIN);//初始化led引脚PA11 PA12
		LedInit(PORT_GROUP1, LED6_PIN);//初始化led引脚PB10
		LedKeyInit();//初始化按键输入引脚PA0
		LedOn(PORT_GROUP2, LED1_PIN);//打开红色
		LedOff(PORT_GROUP2, LED2_PIN);//关闭绿色
		LedOff(PORT_GROUP1, LED6_PIN);//关闭蓝色

    while (1)
   			 {
					if(GPIO_ReadInputDataBit(GPIOA, GPIO_PIN_0) == 1 && keyFlag == 1)//获取引脚的电压至并且防止长时间按下变色以及防抖
					{
						Delay(0x28FFFF);
						if(GPIO_ReadInputDataBit(GPIOA, GPIO_PIN_0) == 1 && keyFlag == 1)
						{
							keyFlag = 0;//一次按下不可重复二次进入
							++ledFlag;//色彩变化
							if(ledFlag >= 3)
							{
								ledFlag = 0;
							}else{}
							switch(ledFlag)
							{
								case 0: 
								{
									LedOff(PORT_GROUP2, LED2_PIN);
									LedOff(PORT_GROUP1, LED6_PIN);
									LedOn(PORT_GROUP2, LED1_PIN);
									break;
								}
								case 1: 
								{
									LedOff(PORT_GROUP2, LED1_PIN);
									LedOff(PORT_GROUP1, LED6_PIN);
									LedOn(PORT_GROUP2, LED2_PIN);
									break;
								}
								case 2: 
								{
									LedOff(PORT_GROUP2, LED1_PIN|LED2_PIN);
									LedOn(PORT_GROUP1, LED6_PIN);
									break;
								}
								default:break;
							}
						}
						
					}else if(GPIO_ReadInputDataBit(GPIOA, GPIO_PIN_0) == 0 && keyFlag == 0){
						keyFlag = 1;
					}else{}
    }
}

 

 

 

最新回复

nmg
板卡是你的朋友,玩的如何了,继续来分享哈   详情 回复 发表于 2024-2-18 18:20
点赞 关注
 
 

回复
举报

825

帖子

3

TA的资源

版主

沙发
 

看来ee的坛友都不过年

 

点评

没有朋友,没事干  详情 回复 发表于 2024-2-11 08:45
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
1nnocent 发表于 2024-2-10 21:31 看来ee的坛友都不过年  

没有朋友,没事干

点评

nmg
板卡是你的朋友,玩的如何了,继续来分享哈  详情 回复 发表于 2024-2-18 18:20
 
 
 

回复

5219

帖子

236

TA的资源

管理员

4
 
裴红恩 发表于 2024-2-11 08:45 没有朋友,没事干

板卡是你的朋友,玩的如何了,继续来分享哈

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

好的,最近在移植esp8266-s1 wifi模块连接板卡到百度智能云  详情 回复 发表于 2024-2-19 11:25
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

5
 
nmg 发表于 2024-2-18 18:20 板卡是你的朋友,玩的如何了,继续来分享哈

好的,最近在移植esp8266-s1 wifi模块连接板卡到百度智能云

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表