![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
小熊派GD32
Willliam_william
这个作者很懒,什么都没留下…
展开
-
小熊派gd32f303学习之旅(9)— 使用硬件I2C读写EEPROM
小熊派gd32f303学习之旅(9)— 使用硬件I2C读写EEPROM一、前言在上一篇中,我们使用软件模拟IIC对AT24C02进行了读写,通过查看GD32F30X的参考手册可以知道,其有2个硬件IIC控制器,现在我们就尝试使用其硬件IIC进行对AT24C02的读写。查看小熊派的原理图,确定AT24C02其使用的IIC引脚为SCL->PB6、SDA->PB7查看数据手册可以知道这两个引脚被I2C0控制器复用为I2C引脚了,那么就可以满足我们的使用需求了二、初始化I2C0控制器如下原创 2020-10-11 22:35:23 · 7609 阅读 · 8 评论 -
小熊派gd32f303学习之旅(8)— 使用软件模拟I2C读写EEPROM
小熊派gd32f303学习之旅(8)— 使用软件模拟I2C读写EEPROM一、前言IIC是一种非常常用的低速通信总线,广泛被用于连接微控制器及其外围设备。关于IIC的介绍可以参考:IIC通信协议详解这里我们用软件模拟 IIC来读写AT24C02这个EEPROM。芯片AT24C02的总容量是 256 个字节,该芯片通过 IIC 总线与外部连接。如下所示,是E53_SC1拓展板上AT24C02的硬件连接图,不过这里有一个很大的问题,就是通过其地址设置引脚的接线我们得到其7位地址为0x51,可实际上,三原创 2020-10-08 21:22:21 · 5828 阅读 · 5 评论 -
小熊派gd32f303学习之旅(7)—使用PWM实现LED呼吸灯
小熊派gd32f303学习之旅(7)—使用PWM实现LED呼吸灯一、前言通过查看gd32f30x的参考手册,可以知道gd32f303的通用定时器和高级定时器可以硬件生成PWM波,然后我们查看gd32f303xx的数据手册,可以看到,小熊派上连接LED的引脚PB0在定时器2的通道2上,这样我们就可以使用其PWM功能产生呼吸灯的效果。二、初始化定时器首先,编写定时器2的初始化函数,将其通道2设置为PWM模式0/* 通用定时器2初始化PWM函数 * 参数: psr:时钟预分频系数,预分频值=psr原创 2020-10-08 15:46:01 · 5447 阅读 · 2 评论 -
小熊派gd32f303学习之旅(6)—使用基本定时器实现LED闪烁
小熊派gd32f303学习之旅(6)—使用基本定时器实现LED闪烁一、前言通过查看gd32f30x的参考手册,可以知道gd32f303共有14个定时器,其中2个基本定时器,10个通用定时器,2个高级定时器。接下来,我们使用基本定时器5的定时器中断来完成LED的闪烁功能。二、初始化定时器首先,编写定时器5的初始化函数:/* 基本定时器5初始化函数 * 参数: psr:时钟预分频系数 arr:自动重装载值 * 返回值:无 */void timer5_init(uint原创 2020-10-07 21:35:48 · 9091 阅读 · 1 评论 -
小熊派gd32f303学习之旅(5)—使用DMA和空闲中断实现串口接收
小熊派gd32f303学习之旅(5)—使用DMA和空闲中断实现串口接收一、前言对于串口的数据接收来说,和发送一样,如果采用传统的接收中断模式接收数据,同样的会因为频繁中断而导致消耗大量CPU资源,所以也使用DMA进行串口数据的接收。然后对于串口接收到的数据,还有很重要的一点就是不确定长度,这样就不知道何时该停止接收,这个时候,串口的空闲中断就体现出他的重要性了,那么什么是空闲中断呢?空闲中断是在检测到有数据接收后,总线上在一个字节的时间内没有再接收到数据时,从而产生中断。即串口的RXNE位被置位之原创 2020-10-06 22:55:55 · 7697 阅读 · 5 评论 -
小熊派gd32f303学习之旅(4)—使用DMA实现串口打印
小熊派gd32f303学习之旅(4)—使用DMA实现串口打印一、前言在上一篇文章(串口打印第一个Hello world程序)我们使用重定义fputc函数的方式实现了串口打印,但是这种方式本质上是在循环输出字符,比较浪费CPU资源。解决这个问题的方法就是使用DMA进行发送。通过串口gd32f30x的用户手册,可以看到,uart0的发送使用的的DMA0的通道3二、添加DMA驱动在之前的uart0_init()函数中添加DMA的初始化,如下:...原创 2020-09-27 23:55:14 · 4518 阅读 · 4 评论 -
小熊派gd32f303学习之旅(3)—串口打印第一个Hello world程序
小熊派gd32f303学习之旅(3)—串口打印第一个Hello world程序一、硬件连接通过查看原理图我们可以看到,当【UART通信选择开关】拨向【AT-MCU】时,USB虚拟串口连接到MCU的UART0,我们只需要将开关拨到【AT-MCU】。二、编写USART驱动程序在Hardware文件夹下新建uart.c文件并添加到工程中,在include文件夹下新建uart.h文件。编写uart.h文件,定义一个串口1初始化函数:#ifndef __USART_H#define __USART_H原创 2020-09-27 00:22:16 · 4940 阅读 · 5 评论 -
小熊派gd32f303学习之旅(2)—新建工程点亮第一个LED灯
小熊派gd32f303学习之旅(2)—新建工程点亮第一个LED灯一、下载标准固件库首先们要下载GD32的标准固件库:http://www.gd32mcu.com/cn/download/7?kw=GD32F3找到【GD32F30x Firmware Library】将其下载下来,将其解压即可。二、新建工程新建一个工程目录,将固件库中的【Firmware】和【Template】文件夹复制过来,方别放到主目录和子目录下,路径如下所示然后将【Template】中的两个文件夹删去,并新建MDK-原创 2020-09-12 00:39:30 · 4229 阅读 · 0 评论 -
小熊派gd32f303学习之旅(1)— BearPi介绍和开发环境的搭建
小熊派gd32f303学习之旅(1)— BearPi介绍和开发环境的搭建一、开发板介绍BearPi-IoT(GD)是一款基于兆易创新的GD32F303RGT6设计的物联网开发板,其主控芯片为GD32F303RGT6。GD32F303RGT6主频为80MHz,内部Flash为1024K ,SRAM为96KB ,芯片具体资源如下所示:BearPi-IoT(GD)开发板的板载资源如下所示:1、SD卡座2、8MB SPI Flash3、5V USB 供电通信接口4、电源指示LED 红色原创 2020-09-12 00:06:38 · 3554 阅读 · 1 评论