GD32F103-初次接触

news2024/11/29 5:27:04

前期资料

外形

原理图

参考手册

1.芯片数据手册

2.用户手册

3.固件库使用指南

固件库解析

外设缩写

一些不常见的外设缩写。

BKP 备份寄存器

DBG 调式模块

ENET 以太网控制模块Ethernet

EXMC 外部存储器控制

EXTI 外部中断事件控制器

FMC 闪存控制器

GPIO/AFIO 通用/备用输入输出接口 alternate备用的、替代的、交替的,所以AFIO可翻译为“备用功能I/O”

MISC 嵌套中断向量列表控制器

PMU 电源管理单元

RCU 复位和时钟单元

SDIO SDIO(Secure Digital Input and Output)中文名称:安全数字输入输出,定义了一种外设接口。

USBD 通用串行总线全速设备接口

USBFS 通用串行总线全速接口

GD3210x_Firmware_Libary

GPIO-LED-Key

原理图

测试代码

和32不同的地方在GPIO的配置,相关的库函数不一样。

#include "gd32f10x.h"                   // Device header
#include "systick.h"

void Key_Init(void)
{
	rcu_apb2_clock_config(RCU_APB2_CKAHB_DIV1);	// APB2时钟分频设置 PC14属于APB2的外设
	rcu_periph_clock_enable(RCU_GPIOC);		//使能RCU_GPIOC
	
	gpio_init(GPIOC, GPIO_MODE_IPU, GPIO_OSPEED_50MHZ, GPIO_PIN_14);
}

uint8_t Key_GetNum(void)
{
	uint8_t KeyNum = 0;
	if (gpio_input_bit_get(GPIOC, GPIO_PIN_14) == 0)
	{
		Delay_ms(20);
		while (gpio_input_bit_get(GPIOC, GPIO_PIN_14) == 0);
		Delay_ms(20);
		KeyNum = 1;
	}
	if (gpio_input_bit_get(GPIOC, GPIO_PIN_14) == 0)
	{
		Delay_ms(20);
		while (gpio_input_bit_get(GPIOC, GPIO_PIN_14) == 0);
		Delay_ms(20);
		KeyNum = 2;
	}
	
	return KeyNum;
}

比如上面按键的初始化中,时钟先选择分频系数rcu_apb2_clock_config之后,再使能rcu_periph_clock_enable。

GPIO的配置,也有了一个初始化函数gpio_init,不用一个一个的写结构体的参数。

 I2C-OLED

一个很bug的函数gpio_bit_write

/*!
    \brief      write data to the specified GPIO pin
    \param[in]  gpio_periph: GPIOx(x = A,B,C,D,E,F,G) 
    \param[in]  pin: GPIO pin
                one or more parameters can be selected which are shown as below:
      \arg        GPIO_PIN_x(x=0..15), GPIO_PIN_ALL
    \param[in]  bit_value: SET or RESET
      \arg        RESET: clear the port pin
      \arg        SET: set the port pin
    \param[out] none
    \retval     none
*/
void gpio_bit_write(uint32_t gpio_periph, uint32_t pin, bit_status bit_value)
{
    if(RESET != bit_value){
        GPIO_BOP(gpio_periph) = (uint32_t)pin;
    }else{
        GPIO_BC(gpio_periph) = (uint32_t)pin;
    }
}

bit_value 只能是SET or RESET 想弄成 0 1

解决办法:

搞了一天,I2C驱动OLED,没想到问题出在时钟上,不仅要打开GPIO的时钟,I2C也要同时打开。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/142488.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

量化股票池数据怎么分析出来的?

量化股票池数据是怎么分析出来的呢?说到这个需要先来了解股票量化的基本原理,在正常的基础上,不是所有的股票数据都经过一一筛选,而是使用一些分析工具来执行,就像a股自动交易接口系统需要编写相符合条件的策略来执行&…

【MySQL】MySQL存储引擎,索引,锁以及调优

文章目录存储引擎MySQL中的索引MySQL 索引优缺点MySQL 索引类型MySQL索引的实现MySQL中的锁MySQL8.0 新特性MySQL中调优存储引擎 MySQL 5.7 支持的存储引擎有 InnoDB、MyISAM、Memory、Merge、Archive、CSV等等存储引擎。 通过show engines; 命令查看,如下图 图中…

【目标检测】Mask R-CNN论文解读

目录:Mask R-CNN论文解读一、Mask-RCNN流程二、Mask-RCNN结构2.1 ROI Pooling的问题2.2 ROI Align三、ROI处理架构四、损失函数一、Mask-RCNN流程 Mask R-CNN是一个实例分割(Instance segmentation)算法,通过增加不同的分支&…

PTA_1_基础编程题目集

文章目录PTA--基础编程题目集1、简单输出整数函数接口定义:裁判测试程序样例:输入样例:输出样例:题解:2、多项式求和函数接口定义:裁判测试程序样例:输入样例:输出样例:题…

车载以太网 - 路由激活处理机制 - 04

在前面我们已经介绍过DoIP的路由激活,不过主要是介绍路由激活的相关的概念;今天我们主要来介绍下路由激活的处理逻辑,进一步的了解软件对路由激活的处理机制,让我们更深入的了解DoIP这块的处理逻辑,更加有助于我们的工作中开发和测试工作的进行。 首先我们简单看下…

Python中的三目(元)运算符

Python中的三目(元)运算符 官方说明 https://docs.python.org/zh-cn/3/faq/programming.html#is-there-an-equivalent-of-c-s-ternary-operator 是否提供等价于 C 语言 "?:" 三目运算符的东西?有的。 语法形式如下: [on_true] if [expre…

细说——JWT攻击

目录介绍什么是JWTJWT有什么用为什么引入JWTJWT的组成JWT 特征识别JWT、JWS与JWE生成JWT视频介绍JWT攻击一些靶场JWT 攻击的影响是什么?JWT 攻击的漏洞是如何产生的?如何在 Burp Suite 中使用 JWT防御JWT攻击攻击工具爆破密钥工具:jwtcrack爆…

一个普通程序员,记录自己沪漂的2022年,2023年1月5日

或许对于每个人而言,2022年都是很艰难的,都是充满曲折的,仅仅以文字记录下我的2022年,我的沪漂生活。 今天是2023年1月5日,昨天的我做了一个梦,梦到自己捡到很多手机,于是做到工位的第一件事就…

(5)Qt中的日期和时间

QDate 日期对象格式化 d - 没有前导零的日子 (1 to 31) dd - 前导为0的日子 (01 to 31) ddd - 显示(缩写) 周一、周二、周三、周四、周五、周六、周日 dddd - 显示(完整) 星期一、星期二、…

微服务三个阶段

微服务三个阶段微服务三个阶段:微服务1.0:仅使用注册发现,基于Spring Cloud 或 Dubbo开发。微服务2.0:使用熔断、限流、降级等服务治理策略,并配备完整微服务工具和平台。微服务3.0:Service Mesh将服务治理…

https安全传输揭秘

HTTPS是什么 我们知道HTTP是明文传输的,恶意的中间人和窃听者通过截取用户发送的网络数据包可以拿到用户的敏感信息。尤其是涉及网上交易,银行转账等操作更是危害极大。 HTTPS的核心是SSL/TLS安全协议层,该层位于应用层和传输层之间&#x…

初识异常(Java系列10)

目录 前言: 1.异常的概念 2.异常的分类 2.1编译时异常 2.2运行时异常 3.异常的处理 3.1如何抛出异常 3.2异常的捕获 3.2.1异常的声明 3.2.2try-catch捕获并处理 3.3异常的处理流程 4.自定义异常类 结束语: 前言: 相信在大家学…

Windows常用命令整理

之前写了一篇关于Windows快速打开服务_陌客依天涯的博客-CSDN博客_服务快捷键 的文章,有表示windows还有很多常用的,那就整理一下,分享跟多点,希望对大家有用。 1、mstsc /*快速开启远程连接客户端*/ 2、regedit /*快速打开注册…

AcWing 1227.分巧克力(二分)

一、题目信息 二、思路分析 先从数据范围入手,这道题的数据范围最大是10的5次方,这就说明我们解决问题时的用到的算法的时间复杂度要控制在O(n)O(n)O(n)或者O(nlog(n))O(nlog(n))O(nlog(n))。 而O(nlog(n))O(nlog(n))O(nlog(n))的算法中最常用的是二分或…

基于RateLimiter+Aop+自定义注解实现QPS限流

QPS秒级限流一、Aop二、自定义注解三、测试类实例QPS简介:QPS(Query Per Second),QPS 其实是衡量吞吐量(Throughput)的一个常用指标,就是说服务器在一秒的时间内处理了多少个请求 —— 我们通常…

控制流分析之构建支配树

控制流分析之构建支配树引言1 分析有向图2 构建支配树2.1 求最小半支配点2.2 求最近支配点引言 如上一个带有起始入口点的有向图为例,从A到Q的必经结点有A、L、M、Q,我们称其为Q的支配点,其中M为Q的最近支配点。我们将每个结点的最近支配结点…

分享124个PHP源码,总有一款适合您

PHP源码 分享124个PHP源码,总有一款适合您 源码下载 链接:https://pan.baidu.com/s/1AIktEQ0-cPRoSSAw_eA2Lw?pwdfb9m 提取码:fb9m 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...&#xff0…

2022 Apache APISIX 年度记忆

时光已逝,转眼 2022 年已然落下了帷幕。Apache APISIX 社区在众多开源爱好者和开发者的陪伴下,又一起走过了新的四季。 在过去的一年中,我们的开源项目和社区都取得了许多成就,并得到了来自全球范围的广泛关注和支持。2022 年&am…

数据库管理与表文件管理

数据库管理: 1.MySql服务器管理数据库位置:C:\ProgramData\MySQL\MySQL Server 5.5\data 2.查看所有的数据库名 show databases; mysql> show databases;(查看有哪些数据库 这属于MySql的命令,不属于SQL语句&…

硅基仿生业务全面 Serverless 容器化,14万+问答库助力糖尿病科普

作者:宁佑章(硅基仿生科技)、元毅(阿里云容器服务) “使用阿里云容器服务 Knative,解决了开发迭代慢的问题,加速了深度学习模型的性能提升;同时提供了弹性可伸缩的资源配置&#xf…