先说说废话,第一篇博客文章,文中有不足之处或者有错误的地方还望指正。IIC 总线(AT24C02)一、先了解了解IIC总线协议基本知识1.IIC协议是二线制,信号线包含SDA和SCL,且信号线是双向的,开路结构,需要通过上拉电阻到VCC,具体的电阻值影响的是信号反应速度和驱动能力。2.IC传输时,要保持SCL为高电平不变,SDA保持稳定;IIC开始的条件:SCL保持高电平,SDA从高电平跳跃到低电
转载
2024-10-23 20:01:37
277阅读
文章目录前言一、基础知识快速理解1.1 理解CAN标识符:1.2 过滤器的工作原理:1.3 如何配置过滤器:二、过滤器模式的选择(监听多个ID)2.1 使用掩码模式多个过滤器匹配多标准ID:2.2 使用掩码来匹配多个ID:(待写)2.3 使用列表模式来匹配多个标准ID:三、相关代码测试3.1 测试列表模式__标准ID3.2 测试掩码模式__标准ID3.3 测试回调函数接收到的ID总结 前言过滤器
本次实验I2C总线传输I2C分为硬件I2C和模拟I2C。其中硬件I2C是单独的I2C硬件驱动,有固定的引脚,和一般芯片驱动使用一样需要操作其寄存器进行数据收发而不用知道I2C的协议内容,灵活度较低但效率高;而模拟I2C是根据I2C协议、时序图,自定义引脚按照协议进行传输,较为灵活但效率较低。使用HAL库+Proteus进行硬件I2C仿真时失败,所以选择更加普适的模拟I2C。 工具 软件
1.1 前言在使用I2C通信时,一般会用到软件模拟I2C。目前网络上能搜索到的软件模拟I2C一般都是模拟I2C主机,很少有模拟I2C从机的例程。由于I2C主机在进行数据收发时,有明确的可预见性,也就是主机明确知道什么时候要进行数据的收发操作,而且I2C的同步时钟信号也是由主机产生的,所以实现起来相对来说比较简单。而I2C从机的通信受制于主机,即什么时候需要进行数据的收发都是由主机发起的
STM32 GPIO模拟多路I2C总线中阶操作I2C/IIC/2-WIRE(相同的总线不同的命名方式)访问时序的实现可以通过硬件功能模块的配置控制实现,也可以通过GPIO模拟时序实现。多路I2C设备的连接,如果每个I2C设备的地址不同,可以通过一路I2C总线连接各个设备,以发送协议的地址激活相应的I2C设备进行响应。对于I2C设备地址相同的多个设备,则需要用多路并行I2C进行访问,通常硬件功能模块
cubemx快速使用串口前言一、使用cubemx进行串口基本配置二、说明三、实验内容1.串口打印2.串口中断实现回显3.串口接收选择回显内容 前言助力于快速使用串口功能,如果想了解串口协议等知识点等请自行搜索,
这里注明串口下功能实现常用的fputc、字符串发送函数、fgetc函数等函数写法。
实验了三个例子来展示printf函数、串口中断使用、串口基本使用。一、使用cubemx进行串口基本配置
转载
2024-03-31 23:10:24
84阅读
一直对stm32的硬件iic敬而远之,好像说是有问题的,就一直用的模拟iic实现,今天用sht30试了一下,发现基于cubemx来配置iic还挺方便的。现做如下记录首先是硬件平台:stm32f103vet6指南者先总结一下步骤cubemx配置->SHT30_Init(选择模式)->reset->利用Init的返回值判断是否成功->读取->数据拼接涉及到的自己写的函数有
转载
2024-02-29 22:01:11
157阅读
GPIO的输入、输出总结一、输入模式1、GPIO_Mode_AIN(==模拟输入==)2、GPIO_Mode_IN_FLOATING(==浮空输入==)3、GPIO_Mode_IPD(==下拉输入==)、GPIOGPIO_Mode_IPU(==上拉输入==)二、输出模式1、推挽输出2、 开漏输出3、推挽和开漏输出的区别: 一、输入模式1、GPIO_Mode_AIN(模拟输入)GPIO的模拟输入用
简言我之前学linux的时候,觉得linux的命令很酷,最近又有写代码的热情,于是手撸了一个串口终端。初次使用介绍特性像终端一样使用输入niubi后,键入回车,输出自己写的回调函数中的内容。支持tab键补全按下n后按下tab键后,到库中匹配关键词,匹配到niubi,显示到下一行。当有多个关键词可以匹配时,提示匹配关键词,并在新的一行显示刚刚输入的内容。支持Backspace键当输入有误时,可以按B
目的通过HAL库实现STM32F103C8T6两块板之间的IIC主从相互通信,串口打印接收数据。环境搭建/**I2C1 GPIO Configuration
PB6 ------> I2C1_SCL
PB7 ------> I2C1_SDA
注意通信线记得接上拉电阻4.7k。CubeMx配置配置sys 串行调试 配置外部高速时钟 配置串口,默认值 配置IIC,
转载
2024-04-15 13:26:09
609阅读
例子:实现串口uart通讯一.搭建STM32CubeMX开发环境1.安装固件库选择自己的开发板固件 ,这里我使用的是f103c6。2.工程创建1.点击file->new project建立工程2.搜索型号,选择合适的型号进行工程建立3.进行系统调试及基准时钟配置。点击System Core下拉栏中的SYS。选择debug调试接口。选择serial WrieSW模式就选择serial
转载
2024-10-24 14:33:38
221阅读
三、STM32CubeMX基础配置上一回讲解了STM32CubeMX基础配置的前一部分,当前已经修改了PACK存放路径,并且初步新建工程,来到了以下界面:3. 配置工程修改与修改PACK存放路径一样,在这里也是极力推荐进行相关修改后再生成工程。一方面,所谓“工欲善其事必先利其器”,进行配置之后,能够使接下来的步骤免去诸多麻烦;另一方面,在此配置过程中,也可以对配置细节有所了解和理解。具体步骤如下:
一、IIC简介IIC协议是飞利浦公司开发的,只需要两根线(SDA SCL)的一个通讯协议。多半用于IC之间的通信,通信距离短。物理层特点:(1)支持设备总线,“总线”是指多个设备共用通信线,就是可以一个主机连接多个从机,从机都挂载在同一条通信线上,每个从机都有自己的地址。(2)总线(SDA SCL)通过上拉电阻接到电源.当总线空闲时,会输出高阻态,当总线挂载多个从机时,总线都空闲时,由上拉电阻把总
在之前的标准库中,STM32的硬件IIC非常复杂,更重要的是它并不稳定,所以都不推荐使用。但是在我们的HAL库中,对硬件IIC做了全新的优化,使得之前软件IIC几百行代码,在HAL库中,只需要寥寥几行就可以完成 那么这篇文章将带你去感受下它的优异之处。本文将详细地讲解I2C协议,并基于I2C
来读写EEPROM模块以达到练习的目的通过本篇博客您将学到:I2C的基本原理STM32CubeM
转载
2024-07-01 16:36:09
185阅读
一、MPU6050中的IIC时序
1.1 START和STOP
SDA和SCL在高电平时,SDA拉低表示START。SCL拉低,表示可以传输数据。SDA和SCL在低电平时,SDA拉高表示STOP。 SCL拉高,表示传输数据结束。1. /******************************************
2. *函数原型: void IIC_Start(void)
3
首先感谢网上的小伙伴,这篇文章记录下浏览量过6W,再学习道路上继续努力加油!小编调试串口功能发现普通方式非常暂用时间,在此记录一下串口DMA方式加串口空闲中断方式收发数据;1、cubemx配置:串口1的DMA方式,修改中断优先级,串口DMA发送一次不需要循环发送,串口宽度Byte; 二、源码: 文件main.c中:/* USER CODE BEGIN Include
转载
2024-05-29 00:41:39
199阅读
文章目录前言一、CubeMX配置(RTC相关)1.使能RTC:2.进制配置:3.初始时间配置:4.日期配置:5.闹钟配置:二、代码1.获取时间2.设置闹钟3.闹钟中断函数三、实验结果总结 前言相关说明:开发板:CT117E-M4(STM32G431RB 蓝桥杯嵌入式比赛板) 开发环境: CubeMX+Keil5CubeMX配置:一、CubeMX配置(RTC相关)1.使能RTC:三个步骤(对应图中
介绍本项目是利用GPIO模拟I2C的从机网上常见的是模拟I2C主机本项目是作为一个两个单片机之间低速通信的用法从机功能实现I2C从机端读写寄存器编程思路I2C的从机实现比起主机来麻烦一些因为SCL的时序是由主机发送,从机需要响应注意:整个过程不考虑应答码思路是检测SCL与SDA的边沿(上升沿和下降沿)中断在SDA的边沿检测SCL的电平,如果SCL为高电平,则根据协议开始(SDA上升沿),或结束(S
转载
2024-10-12 12:12:43
1258阅读
I2C简介I2C 通讯协议 (Inter - Integrated Circuit) 是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单, 可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多 个集成电路 (IC) 间的通讯。软件模拟PK硬件虽然说STM32是有I2C集成芯片的,但是目前来说是存在很大问题,多用几次就能明显的感觉出来,很容易出现玄学
前面说了USB鼠标,这次趁热打铁,说一下USB键盘。依然只说如何修改,不说背后的原理。原因你懂的,涉及的知识点太多了。会不会写成USB三部曲? 不知道猜猜我下一步再写个啥?1 生成工程首先,STM32CubeMX的配置部分不说了,和USB鼠标部分的一样。唯一需要注意的一点是,VID和PID这两个值要改一下,否则主机(也就是电脑)会以为你还是
转载
2024-09-12 23:08:45
142阅读