推荐阅读最新更新时间:2024-03-16 16:11
物联网之STM32开发八(I2C总线通信)
STM32-I2C总线通信 内容概要 I2C总线通信原理 三轴加速度传感器mpu6050介绍 I2C通信实例 I2C总线通信原理 内容概要: I2C总线简介 I2C总线协议 I2C总线读写操作 STM32F0-I2C控制器特性 I2C总线简介: I2C总线介绍:I2C(Inter-Integrated Circuit)总线(也称IIC或I2C)是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,期间封装形式少,通信速率高等优点。 I2C总线特征: 两条总线线路:一
[单片机]
【STM32】HAL库 STM32CubeMX教程十二---IIC(读取AT24C02 )
前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 在之前的标准库中,STM32的硬件IIC非常复杂,更重要的是它并不稳定,所以都不推荐使用。 但是在我们的HAL库中,对硬件IIC做了全新的优化,使得之前软件IIC几百行代码,在HAL库中,只需要寥寥几行就可以完成 那么这篇文章将带你去感受下它的优异之处 这可能是目前关于STM32CubeMX的硬件iic 讲的最全面和详细的一篇文章之一了 所用工具: 1、芯片: STM32F103ZET6 2、STM32CubeMx软件 3、IDE: MDK-Keil软件 4、STM32F1xx/STM32F4xxHAL库 5、II
[单片机]
STM32学习——位带区的理解
位带简介 位操作就是可以单独的对一个比特位读和写,类似与51中sbit定义的变量,stm32中通过访问位带别名区来实现位操作的功能 STM32中有两个地方实现了位带,一个是SRAM,一个是片上外设。 个人理解 (1)位带本质上是一块地址区(例如每一位地址位对应一个寄存器)映射到另一片地址区(实现每一位地址位对应一个寄存器中的一位),该区域就叫做位带别名区,将每一位膨胀成一个32位的字。 (2)位带区的4个字节对应实际寄存器或内存区的一个位,虽然变大到4个字节,但实际上只有最低位有效(代表0或1) 映射过程 要设置0x2000 0000这个字节的第二个位bit2为1,使用位带操作的步骤有: 1、将1写入位 带别名区对应的映射
[单片机]
STM32关于外部时钟晶振为什么选用8MHz
芯片的主晶振频率范围一般来说在数据手册(Datasheet)和技术参考手册(Technical Reference Manual)中都有介绍。 你提到的时钟先分频再倍频,这个需要深入到STM32的内部去一探究竟了, 在其技术参考手册的第7.2节Clocks的一开始有一个表格,时钟树(Figure 8. Clock tree),它完全地列出来STM32这个芯片内部各个模块的时钟来源以及相关的从属关系。 在这个图的正中央,有一个核心时钟:SYSCLK,它最大频率是72MHz,它的时钟信号通过选择器SW可以由PLLCLK提供(也可由HIS、HSE提供)。 PLL,毫无疑问,它是用来倍频的,可以*2,*3,*4……*16,它
[单片机]
STM32 按键扫描方式 使用ST3.0.0库
用到GPIO的操作模式 ======================================================================================== GPIO置1操作: void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) 例如: GPIO_SetBits(GPIOC, GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5); 这个函数是对一组端口的一些位置1,对PC3 PC4 PC53个引脚一起置1。GPIO_SetBits的作用是对一个端口16个引脚一起赋值。 例如:端口 GPIOC端
[单片机]
如何实现一种基于STM32单片机的智能浴室水温调控仪设计
一、功能简介 本项目使用Proteus8.12仿真STM32单片机控制器,使用LCD1602、DS18B20、继电器加热、电机模块等。 系统运行后,LCD1602显示DS18B20采集温度值、温度上限阈值。开启加水,一段时间后开启加热,当水位到达后停止注水,继续加热到设定温度,可通过K1、K2键对温度上限设置,若检测温度大于或等于上限,关闭加热装置;若温度低于上限,开启加热装置; 主要功能如下: (1)水温,水位实时检测; (2)水温设定,超限关闭加热; (3)继电器控制加热、注水; (4)LCD1602液晶显示。 二、软件设计 //系统参数初始化 void sys_parm_init(void) { //初始自动模式
[单片机]
STM32库函数编程学习心得:assert_param的应用
在STM32的固件库和提供的例程中,到处都可以见到assert_param()的使用。如果打开任何一个例程中的stm32f10x_conf.h文件,就可以看到实际上assert_param是一个宏定义;在固件库中,它的作用就是检测传递给函数的参数是否是有效的参数。 所谓有效的参数是指满足规定范围的参数,比如某个参数的取值范围只能是小于3的正整数,如果给出的参数大于3,则这个assert_param()可以在运行的程序调用到这个函数时报告错误,使程序员可以及时发现错误,而不必等到程序运行结果的错误而大费周折。 这是一种常见的软件技术,可以在调试阶段帮助程序员快速地排除那些明显的错误。 它确实在程序的运行上牺牲了效率
[单片机]
基于VSCode搭建STM32开发环境
众所周知, Keil 是一款收费软件,虽然可以Po解使用,但很多 公司 还是有点害怕,想必有不少读者都收到过**函。 之前,开发 单片机 项目,可以说 Keil 是最佳选择之一,但VSCode横空问世之后,这种格局被打破。 因为 VSCode 免费且好用,可以安装各种插件,很多 工程师 逐渐从Keil 转向了 VSCode。而且,VSCode还能实现 Keil 不能实现的一些功能。 下面就给大家分享一下 VSCode 搭建 STM32 开发环境的一些常规且使用的功能。 一、需要的软件和工具 下载 最新版 VS Code: 安装好插件,具有良好的代码补全与调试功能。 下载 LLVM:用于代码补全,其实可以理解
[单片机]