CubeMX配置STM32并驱动0.96寸OLED 一、使用CubeMX进行基础的配置1、配置时钟 这里的时钟我试了一下,设置为72MHZ和32MHZ好像对IIC的影响区别不是很大,这个就看个人吧。1、配置IIC 在这里只需要选择需要用的IICX就可以了。因为我使用的是C8T6,所以使用了IIC2就无法再使用USART3了。 然后选择IIC speed MODE为高速模式(其实选择标准模式也可以用
转载
2024-07-17 22:03:01
194阅读
一、STM32的中断系统 理解中断、 中断源、 中断向量、中断优先级、 中断服务函数…等基础概念。 ARM Cortex M3内核支持256个中断,包括16个内核中断和240个外设中断,拥有256个中断优先级别。 STM32的中断通道可能会由多个中断源共用。这就意味着,某一个中断服务函数也可能被多个中断源所共用。所以,在中断服务函数的入口处,需要有一个判断机制,用以辨别是那个中
最近遇到一个BUG,跟IIC通信有关,所以借这个机会总结一下IIC总线协议1.引脚接口介绍1.A0,A1,A2为24LC64的片选信号,IIC总线最多可以挂载8个IIC接口器件,通过对A0,A1,A2寻址,可以实现对不同的EEPROM操作2.WP为读写使能信号,当WP悬空或者接地,EEPROM可读可写,当WP接电源,EEPROM只能读不能写。因为我们要对EEPROM写,所以这里WP信号悬空3.SC
LCD设备驱动此文章应参照linux2.6.24内核源文件和linux设备驱动开发详解进行学习!18.1 LCD硬件原理利用液晶制成的显示器称为LCD,依据驱动方式可分为静态驱动/简单矩阵驱动以及主动矩阵驱动3种.其中,简单矩阵型又可再细分扭转向列型(TN)和超扭转向列型(STN)两种,而主动矩阵型则以薄膜式晶体管型(TFT)为主流。 18.2 帧缓冲18.2.1 概念帧缓
STM32F103固件库编程(6)—I2C(一)I2C时序表(二) STM32的I2C特性及架构(三)寄存器映射(四)代码(CV工程师)#include "stm32f10x.h"
#include "bsp_usart.h"
#include "bsp_i2c.h"
uint8_t readData[10]={0};
uint8_t writeData[8]={4,5,6,7,8,9,10,1
linux内核GPIO模拟I2C实例 作者:cvip302814 前言:在许多情况下,我们并没有足够的I2C总线,本文主在介绍如何利用Linux内核中的i2c-gpio模块,利用2条GPIO线模拟i2c总线,并挂载设备。思路:先通过对i2c-gpio所定义的结构体初始化(包括初始化i2c的2条线,频率,timeout等)并将i2c-gpio模块编译进内核,实现用GPIO_X,
1. 定时器基础1.1 Counter SettingsPrescaler(16bit)分频值:将定时器之中频率分频。Counter Period : 周期计数值,按照分频后的时间进行计数。1.2 Channel InitMode :模式选择1)Mode = Toggele on match(即定时器ARR寄存器周期计数值溢出就翻转电平)Pulse : 电平跳变值。通过定时器计数,计数到Pulse
转载
2024-07-11 14:04:52
163阅读
定时器详细介绍(基于标准库的,原理部分可参考1. 定时器中断配置 配置参考
使用内部时钟:internal clock,其它默认 定时器计数值更新时间: T为定时时间,Psc为预分频数,Arr为自动重装载寄存器的值,Tclk为定时器的输入时钟。这里为T为1s,Tclk为72MHz,设置Psc为7200-1,Arr为10000-1。自动重载值。
前言前面提到,要想使用DMA首先要配置DMA废话不多说,直接上代码吧typedef struct {
//源地址高8位
unsigned char SRCADDRH;
//源地址低8位
unsigned char SRCADDRL;
//目的地址高8位
unsigned char DESTADDRH;
//目的地址低8位
unsigned char DES
实验目的:通过STM32Cube MX来快速配置对SD卡的使用 实验芯片:STM32F407 1、通过SDIO的通讯方式可以对SD卡进行读写操作,此次需要将采集的数据放置入SD卡中,通过文件管理系统对文件进行创建和读取。 2、STM32Cube MX中的配置SDIO的配置: SDIOXLK clovk divide factor参数的选择与晶振有关,若出现后续挂载不成功等问题时,可以增加分频系数,
STM32H7系列芯片不像F4系列,其通过FMC来驱动TFTLCD需要先配置MPU,这个步骤是必要的,然后是配置FMC的相关设置,最后生成对应代码,同时将自己的LCD代码嵌入其中,就可以实现对TFTLCD的显示控制!!第一步:在如下的配置框中对MPU进行配置!! 图上为什么基地址是0X60000000?请看下图, 上面两个图可以看到,块1才是用于设置F
SMT32CubeMx安装详解 文章目录SMT32CubeMx安装详解前言一、准备工作二、CubeMax安装三、工程参数配置总结 前言记录CubeMax软件安装和相关工程配置的简单操作一、准备工作在我们进行软件安装之前首先将我们需要用到的各类软件下好,安装包链接放下面了需要的自行下载哈。链接: https://pan.baidu.com/s/1a0Cgyxxq0MCX6kNFA7ClCQ 提取码:
转载
2024-03-21 07:06:49
113阅读
今天可能会学得比较多,所以说三四五可能会全部连着一起更新如果说时间比较紧张的话,一天还是只学一节就差不多了今天学一下中断,中断这个东西很重要,在单片机微处理器这些环节里面,中断的核心位置是难以动摇的。首先中断包括啥呢,中断源,中断向量(中断源的地址啥的),中断优先级,中断服务函数啥啥啥的。对于STM32而言,是M3内核的,有16个内部中断,240个外部中断。256个中断优先级。因为STM32相较于
转载
2024-09-03 19:49:01
85阅读
这节主要是GPIO的应用 包括点亮led灯和数码管使用。使用CubeMax进行配置使用keil5编写代码。应用效果演示 链接GPIO介绍General Purpose Input Output (通用输入/输出)简称为GPIO 许多设备或电路只要求有开/关两种状态就够了,比如LED的亮与灭。对这些设备的控制,在嵌入式微处理器上通常提供了一种“通用可编程I/O端口”,也就是GPIO。对GPIO的配置
使用CUDA写一个矩阵乘法C = A X B(矩阵维度:A: M X K, B: K X N, C: M X N),当然可以自己写核函数,但效率不如CUDA自带的cublas算法效率高。使用cublas唯一值得注意的地方是,在CPU中的矩阵数据存储是行优先存储,而在GPU中是列优先存储,这相当于对原矩阵做了一次转置,我们知道矩阵的两次转置等于原矩阵,要让最后的结果正确,在GPU中计算要使用:TC
<uart驱动程序概述>
在嵌入式Linux系统中,串口被看成终端设备,终端设备(tty)的驱动程序分为3部分:
tty_core
tty_disicipline
tty_driver
包括3个结构体:uart_driver,uart_port,uart_ops(include/
前言相较于普通TIM,HRTIM最显著的特点就是可以倍频到最大的32倍,这就可以使得定时器即使工作在较高频率下,仍有较高的分辨率。 因此它主要用于数字电源、照明,电源耗材,太阳能逆变器和无线充电等应用场合,当然,也可以作为通用目的。所用工具:开发板:STM32G474RESTM32CubeMXIDE: Keil-MDK基础知识主定时器(Master Timer): 基于 16 位递增计数器。它可通
转载
2024-09-27 10:23:44
147阅读
STM32cubemx教程及STM32入门(五)IIC 2022.8.25前言本章主要讲解IIC协议以及stm32cubemx配置和HAL库函数简介I2C(Inter-Integrated Circuit ,内部集成电路)总线是一种由飞利浦Philip公司开发的串行总线。是两条串行的总线,它由一根数据线(SDA)和一根 时钟线(SDL)组成。I2C总线上可以接多个I2C设备,每个器件都有一个唯一的
STM32控制SG90舵机的PWM部分参数的设置解答一、(180度)舵机控制要知道的知识二、PWM的参数要怎么计算1、为什么要分频呢?2、为什么选择PWM模式1(TIM_OCMode_PWM1)呢?每天进步一点点 笔记仅供自学,用来回看复习,不一定适合你,如有错误请指出。 一、(180度)舵机控制要知道的知识我们要知道,SG90舵机接收的PWM信号的参数:f=50Hz,T=1/f,所以周期为20
一、usmart介绍1、usmart简介本USMART调试组件是正点原子开发提供的,主要功能是通过串口调试单片机里的函数,并执行。对于代码调试很有帮助。我们普通的代码调试是通过:改写函数,修改参数,编译下载,查看结果;如果不满意的话继续这个流程。这样流程很麻烦而且单片机也是有寿命的,如此往复有损寿命。使用USMART调试组件,只需要在串口调试助手里面输入函数以及参数,然后通过串口直接发送给单片机,