草庐IT

【U8G2库移植到STM32F103C8T6上】

文章目录前言一、U8G2是什么?二、移植步骤1.软件i2c移植(1).U8G2库的下载(2).新建一个工程STM32工程(3).修改U8G2库(4).编写配置函数(5).测试代码(6).主函数代码2.实验现象(1)proteus中查看实验现象前言最近在B站上刷到了一位up主设计的oled丝滑界面WouoUI,一个优雅得比较像话的UI框架,128*64经过询问,得知up用的是U8G2库,U8G2多用于arduino编译器上,但是我们学校常用的是stm32。所以经过一段时间的研究,我将U8G2库移植到了stm32f103c8t6上进行使用。一、U8G2是什么?关于U8G2的使用,可以参考一下这个博

Keil导入STM32芯片包

问题:在keil中新建项目时没有stm32芯片包,需要手动导入STM32的芯片包。导入不成功很大可能是因为没有设置以管理员身份运行。解决方法:下载并解压STM32F0XXPACK.zip(以F0系列为例),得到一个如下的文件。找到安装目录下\Keil_v5下的Uninstall.exe,属性->兼容性->以管理员身份运行3.以管理员身份重新启动Keil,点击PackInstaller->File->Import,选择第一步的文件导入即可。这里0%的时间大概两三分钟,然后很快100%了(或许是意外)。再新建项目就能看到STM32的芯片了。

STM32 HAL库手动配置过程

手动配置HAL库与配置固件库工程类似1、首先新建四个文件夹2、打开keil5,新建新工程在Project文件夹中按开发板选择芯片3、添加hal相关库到工程目录Libraries下4、在User下新建main.c5、在工程配置中新建5个组6、将对应文件添加到工程中添加启动文件到STARTUP中添加system_stm32f1xx.c到CMSIS中将需要用到的相关外设源文件添加到STM32F1xx_HAL_Driver中添加main.c到USER中DOC中放用户自己的说明文本readme.txt7、在工程选项中添加头文件路径8、在配置选项卡添加宏USE_HAL_DRIVER,STM32F103xE

STM32使用FSMC与FPGA通信

ZYNQ中使用AXI总线进行PS与PL的交互很方便,STM32可以使用FSMC模拟AXI交互,实测效果还不错,只不过AXI总线可以直接交互32位数据,STM32的FSMC一般只有8/16位,我使用的是16位的。先对FSMC初始化#include"fsmc.h"voidFSMC_init(void){ GPIO_InitTypeDefGPIO_InitStructure; FSMC_NORSRAMInitTypeDefFSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDefreadWriteTiming; //时钟使能 RCC_AHB3

CAN学习笔记3:STM32 CAN控制器介绍

STM32CAN控制器1概述STM32CAN控制器(bxCAN),支持CAN2.0A和CAN2.0BActive版本协议。CAN2.0A只能处理标准数据帧且扩展帧的内容会识别错误,而CAN2.0BActive可以处理标准数据帧和扩展数据帧。2bxCAN特性波特率最高可达1Mbps支持时间触发通信(CAN的硬件内部定时器可以在TX/RX的帧起始位的采样点位置生成时间戳)具有3级发送邮箱具有3级深度的2个接收FIFO可变的过滤器组(最多28个)3CAN控制器模式CAN的控制器模式有工作模式、测试模式和调试模式。3.1工作模式CAN控制器的工作模式有三种:初始化模式、正常模式和睡眠模式。工作流程如下

STM32-SPI详解

内容概览1、SPI简介2、SPI特点2.1、SPI控制方式2.2、SPI传输方式2.3、SPI数据交换2.4、SPI传输模式3、工作机制3.1、相关缩写3.2、CPOL极性3.3、CPHA相位3.4、极性和相位图示3.5、软件设置极性和相位4、STM32的SPI控制模块5、SPI的应用6、代码1、SPI简介SPI规定了两个SPI设备之间通信必须由主设备(Master)来控制次设备(Slave).一个Master设备可以通过提供Clock以及对Slave设备进行片选(SlaveSelect)来控制多个Slave设备,SPI协议还规定Slave设备的Clock由Master设备通过SCK管脚提供给

2023年电赛电源题代码开源——(含SOGI、锁相环、电压电流双环控制的STM32实现)

1.基于二阶广义积分器的锁相环实现 笔者的锁相环这一环节参考的是知乎的这篇文章: 单相锁相环(一)基于二阶广义积分器的单相锁相环(SOGI-PLL)的matlab/simulink仿真-知乎 文章写的非常详细、如果详细阅读必定会有收获,这边笔者就放出自己的代码,并且加以解释。首先,我才用两个函数去实现锁相环,第一个是对输入信号进行二阶广义积分处理,产生两个幅度相同,但是相位相差90度的信号,这两个信号一个相位与原输入信号相同,另外一个与输入信号滞后90度。具体实现见图2,或者对上述链接进行Z变换的推导。 图.一 实现锁相环的代码框架图.二二阶广义积分的代码实现 具体不加以解释,然后变量在攥写代

STM32 软件IIC配置(MPU6050演示)

IIC说明:IIC是一种通信协议,IIC总线是一种用于IC器件之间连接的二线制总线,有主机和从机,二者可以互相通信,可以一主多从也可以多主多从,有时钟线(SCL)和数据线(SDA),SDA线既可以被主机控制也可以被从机控制,但SCL线只能由主机控制。软件IIC配置:总体操作:1.初始化GPIO,包括打开时钟,配置结构体,初始化选用的引脚2.配置IIC开始函数3.配置IIC结束函数4.配置IIC发送一个字节函数5.配置IIC接收一个字节函数6.配置IIC发送应答函数7.配置IIC接收应答函数具体操作:1.初始化GPIO,例如,选用Pin10为SCL线,Pin11为SDA线,配置IIC的GPIO为

STM32学习笔记-I2C通信协议

文章目录介绍:两种实现方式:I2C设备的常用连接方式:I2C协议时序:STM32硬件I2C框架图I2C外设通讯过程**I2C读写EEPROM**(硬件I2C)介绍:两根通信线SCL(时钟线)、SDA(数据线)同步半双工,支持总线挂载多设备两种实现方式:I2C有硬件I2C和软件I2C两种实现方式硬件I2C:STM32的I2C片上外设专门负责实现I2C通讯协议,只要配置好该外设,它就会自动根据协议要求产生通讯信号,收发数据并缓存起来,CPU只要检测该外设的状态和访问数据寄存器,就能完成数据收发。这种由硬件外设处理I2C协议的方式减轻了CPU的工作,且使软件设计更加简单软件I2C:通过控制IO口高低

STM32软件模拟IIC---读写驱动AT24Cxx

以下内容皆是个人学习过程中的总结,记录一下整个过程,用于后期复习,如有不对之处,麻烦各位大佬指出~(喜欢的朋友麻烦点个关注~~~后期还会进行持续更新)概述 AT24C系列为美国ATMEL公司推出的串行COMS型E2PROM,是典型的串行通信E2PROM ,AT24CXX是IIC总线串行器件,具有工作电源宽(1.8~6.0 V),抗干扰能力强(输入引脚内置施密特触发器滤波抑制噪声),功耗低(写状态时最大工作电流3 mA),高可靠性(写次数100万次,数据保存100年),支持在线编程等特点.一、模拟IIC1.1、IIC简介IIC(Inter-IntegratedCircuit)总线是一种由PHIL