国产普冉PY32F002BW15U7TR芯片,我们在前一篇已经做好了他的开发板,为了方便测验,我们做的很大,实际上可以做的非常小,因为实际电路图没多少构成,这个芯片本身具备廉价低本的特质。

这个开发板,我们设置了五个调试引脚。因此我们用DAP下载调试器配合KEIL烧录代码。

从普冉公司官网上下载所需要的资料和环境。在例程的帮助下,尽快入手。这款芯片不同系列在官网例程中所需功能引脚对应相同。

1.了解开发板

1.1 图片

这是从嘉立创上免费打的板子,用了沉金工艺(需要考试通过,领取每月沉金PCB免费打板劵)

焊接物料后:

这是我做出的比较成功的简易PCB:

功能模块:

DAP-link固件可以提供3.3V供电,LED1红灯亮起代表接通电源。

1.2引脚功能实现(IIC)

要想知道引脚复用了什么功能,一定要看说明,学会看数据手册十分重要。国产芯片一般有完善的中英文手册,方便工程师查阅。

1.2.1  IIC说明

1.2.2 引脚定义

PB3 SCL   PB6 SDA

 

PA2 主功能SWCLK --- SCL      PB3--SCL

由此可得,IIC的数据线必定是PB6引脚了,时钟线有PB3和PA2。当然他的主功能还是SWD仿真引脚,负责下载调试。

强烈注意:不建议占用SWD引脚,会导致芯片死锁概率直线上升,遇到这种情况,请用模拟I2C.

PB6 主功能SWDIO--- SDA    

因为引脚位置关系,方便传输数据和接线,我们使用PB6和PA2.

提示:占用SWDpin,强行使用的话,要在初始化之前作延时,一般3秒最好。或者在IIC使用完毕,程序单次运行的情况下可以在后面重新复位SWD。但还是不建议,后期很不稳定,最好的结果是芯片永久死锁。 

PA1 PA4 PA5可做LED灯,初始化高电平,通用推挽输出,不接上下拉。

2.环境搭建

2.1资料获取渠道

已经下载好官方的软件和例程库文件。关于普冉芯片的所有资料网上很少公开,我们所能获取的渠道只有官方的手册例程和HAL库资料,全部下载,都是有用的。

如果你是对方公司的客户,你还可以与客服经理沟通,一些疑问的点可以得到解答。因为即使是资料也有涵盖不到的地方。

总之,感兴趣可以找渠道买下这款U7芯片,开发他很有惊喜!

此文档用于描述 PY32_DFP 器件支持包的安装以及使用,此器件支持包适用于 Keil MDK

成开发环境,安装此器件包前需要先安装 Keil MDK 工具。

此器件支持包配合 Keil MDK 软件以及仿真器 PY-LINK,可以实现对 PY32 系列 MCU 的开发

与调试。支持新建工程、编译、下载、仿真调试四大功能。

2.2搭建环境

官方提供的编译软件不止有keil,还有IAR,这里我们统统用keil开发。

首先在电脑上安装PY32f002b的支持包,这是新的芯片,需要专门的支持包。

点击安装即可,目前官网上的支持包对PY32f002b系列芯片应该是统统支持的。

直接next.->finsh.

3.建立工程

普冉单片机的开发需要多个文件和文件夹。因此我们要建立工程,明确工程存储路径,做好相关命名工作。

3.1建立工程文件

创建一个工程文件夹protect_01,所有的项目文件夹都放在这里面。

为了减少编译错误,我们的文件路径都用英文表示。

3.1.1建立文件框架

根据自己的习惯,分文别类。

3.1.2放文件

Drivers里面放inc src两个文件,inc放.h文件,src放.c文件。

还是找官方文件。这在嵌入式单片机开发领域非常常见,我们上手的陌生芯片远比我们认识的要多得多,遇到难题就去找官方,官方才是一手资料获取地,任何方案和教程都是从官方源文件发展起来的。

复制hal库文件到我们的工程中去。

然后是启动文件。我们去找模板。

一般与工程文件在一起,我们把它放Startup文件夹

还要找到一个文件,同样放到startup里面。

在user文件中创建INC和src文件夹。

将其余的main.c  msp.c it.c放到src文件夹里面。

之后就是建立工程文件和编写一些驱动。

3.2 建立工程,加载文件

打开keil软件,新建工程。取名protect_01.

添加内核文件和启动文件

将.c文件加入进去。

hal库文件请注意,有时候我们需要用到什么就加什么,因为这个芯片的flash很小,我们后面需要视情况排除一些hal库文件。

3.3 相关参数设置

我们第一步就已经配好pack了。

使用的烧录设备是野火小智出品DAP下载器

我们的芯片会显示出信息来,证明设备连接没错。

如此我们的参数配置已经完成了。

4.DAP下载使用

4.1产品外观

4.2相关配置

证明下载器没有问题

连接器上两个灯常亮。我们针对SWD引脚一个个接入。

5.烧写例程--点灯

之后我们可以烧写官方给的例程库函数了,嵌入式开发的第一个程序,必是点灯无疑了。

库函数中的电灯仅仅只是点灯,我们玩点花活,流水灯!

#include "main.h"

/* Private define ------------------------------------------------------------*/
#define LED1 GPIO_PIN_1
#define LED_GPIO_PORT                LED3_GPIO_PORT
#define LED_GPIO_CLK_ENABLE()        LED3_GPIO_CLK_ENABLE()
#define LED2 GPIO_PIN_4
#define LED3 GPIO_PIN_5
static void APP_GpioConfig(void);


int main(void)
{
  /* Reset of all peripherals, Initializes the Systick. */
  HAL_Init();
  
  /* Initialize GPIO */
  APP_GpioConfig();

  while (1)
  {
    
HAL_GPIO_WritePin(GPIOA, LED1, GPIO_PIN_RESET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA, LED1, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA, LED2, GPIO_PIN_RESET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA, LED2, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA, LED3, GPIO_PIN_RESET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA, LED3, GPIO_PIN_SET);
    
  }
}

/**
  * @brief  GPIO configuration.
  * @param  None
  * @retval None
  */
static void APP_GpioConfig(void)
{
  GPIO_InitTypeDef  GPIO_InitStruct = {0};

  LED_GPIO_CLK_ENABLE();                                 /* Enable GPIOA clock */

  GPIO_InitStruct.Pin = LED1|LED2|LED3;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;            /* Push-pull output */
  GPIO_InitStruct.Pull = GPIO_NOPULL;                    /* Enable pull-up */
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;          /* GPIO speed */  
  /* GPIO initialization */
  HAL_GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct);
  HAL_GPIO_WritePin(LED_GPIO_PORT, LED1, GPIO_PIN_SET);
  HAL_GPIO_WritePin(LED_GPIO_PORT, LED2, GPIO_PIN_SET);
  HAL_GPIO_WritePin(LED_GPIO_PORT, LED3, GPIO_PIN_SET);
}

/**
  * @brief  Error executing function.
  * @param  None
  * @retval None
  */
void APP_ErrorHandler(void)
{
  while (1)
  {
  }
}

#ifdef  USE_FULL_ASSERT

void assert_failed(uint8_t *file, uint32_t line)
{
  /* Users can add their own printing information as needed,
     for example: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  /* Infinite loop */
  while (1)
  {
  }
}
#endif /* USE_FULL_ASSERT */

官方有给hal库,会初始化配置的朋友们,直接上手即可。

6.资料分享

PY32F002BW15U7TR官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐