参考传送门 关于IIC的原理这里我就不多说了,网上有很多很好的解析,如果要看我个人对IIC的理解的话,可以点击查看,这里主要讲一下怎样利用STM32CubeMx实现IIC的通讯,经过个人实践,感觉HAL库的硬件IIC要比标准库的稳定.好了,下面就从STM32CubeMx 配置开始一步步实现IIC通讯. STM32CubeMx的配置,这里关于新建工程的步骤我就不细说了,如果还不会操作STM32CubeMx 的可以点击查看, 这里主要对IIC的配置进行说明. 了解IIC的都知道,IIC通信有主从机之…
利用STM32CUbeMx编写程序,大大方便了开发,最近做的项目利用到了 STM32CUbeMx的硬件SP,这里对SPI的使用做一个总结. HAL库里的硬件SPI主要有以下几个库函数: /* hspi1:spi1 硬件通道,temp_val:发送的数据,re_val:接收的数据,1:数据长度,1000:超时时间 */ HAL_SPI_TransmitReceive(&hspi1,  &temp_val, &re_val, 1, 1000);   // 一边接受一边发送数据 HAL_…
写在前面 最近需要使用一款STM32L4系列的芯片进行开发,需要学习使用HAL库.在进行串口中断使用的时候遇到了一些小麻烦,写下解决方案供大家参考. 1.UART相关的头文件引用错误 由于本人直接使用MDK进行开发,没有使用CubeMX,所以一些初始化需要手动进行.在引用UART相关的头文件时,记得将"stm32l4xx_hal_conf.h"文件中的相关宏定义取消注释,如下图: 2.如何接收字符串(多次进入中断) 接收字符串主要有两种方法,一种是对中断函数进行改造,另一种是对接收回调…
STM32使用Cubemx生成的代码中,用到IIC的驱动,但是始终不能读写,因此使用逻辑分析仪,发现原本地址为0x58的写成了0x20,因此肯定是地址错了.因此,总结如下: 1.需要逻辑分析仪分析IIC协议书很好的,目前使用的工具是:DSView 逻辑分析仪.2.keil在线debug的能够独写一次的,能代表是正确的,逻辑分析仪才是正确的判断方法.3.在不能分析原因的情况下,先把硬件电源判断正确,是否有正确的电压.4.示波器的探头也会有不能正常使用的情况,因此,发现没有波形的时候,也需要换一个探…
// PG精简版 (function() { var PG = { iosBridge: null, callbackId: 0, callbacks: [], commandQueue: [], commandQueueFlushing: false }, ua = navigator.userAgent, isIOS = (ua.indexOf("iPhone") > -1 || ua.indexOf("iPad") > -1 || ua.index…
Stm32具有IIC接口,接口有以下主要特性 多主机功能:该模块既可做主设备也可做从设备 主设备功能 C地址检测 位/10位地址和广播呼叫 支持不同的通讯速度 状态标志: 发送器/接收器模式标志 字节发送结束标志 总线忙标志 错误标志 个中断向量 可选的拉长时钟功能 具单字节缓冲器的DMA 虽然很多人说STM的硬件IIC不好用,但是对于这么一个设备去探索一下还是很有必要的,指不定哪天就用上了呢, IIC借口一共有九个寄存器,比较重要的几个寄存器分别如下 1.       CR1 由这几个位我们可…
l  STM32通过PWM与定时器方式控制无源蜂鸣器鸣响 l  STM32小音乐盒,歌曲进度条图形显示与百分比显示,歌曲切换 l  编程使用STM32 HAL库 l  IIC OLED界面编程,动画实现 PWM+TIME驱动无源蜂鸣器,最大的好处就是可以释放主循环,不让程序卡主去播放音乐,这类型操作系统的线程一样,音乐在后台播放,主循环可以随时切换或者关闭音乐或者其它功能操作 视频演示:https://www.bilibili.com/video/BV1M54y1Y72G 一. 基础认识 一切的…
工作以来一直使用ST的STM32系列芯片,ST为开发者提供了非常方便的开发库.到目前为止,有标准外设库(STD库).HAL库.LL库 三种.前两者都是常用的库,后面的LL库是ST最近才添加,目前支持的芯片也偏少.各库如下所示: 其中STD库和HAL库两者相互独立,互不兼容.几种库的比较如下: 目前几种库对不同芯片的支持情况如下: 上图中,LL库目前有部分芯片不支持,官方计划2017年逐步完善. STM32Snippets 它是代码示例的集合,直接基于STM32外设寄存器,可在文档和软件包中使用.…
STM32 Embedded Software  工作以来一直使用ST的STM32系列芯片,ST为开发者提供了非常方便的开发库.到目前为止,有标准外设库(STD库).HAL库.LL库 三种.前两者都是常用的库,后面的LL库是ST最近才添加,随HAL源码包一起提供,目前支持的芯片也偏少.各库如下所示:库  其中,STD库和HAL库两者相互独立,互不兼容.几种库的比较如下:库比较  目前几种库对不同芯片的支持情况如下:支持情况上图中,LL库目前有部分芯片不支持,官方计划2017年逐步完善.STM32…
https://www.cnblogs.com/Mysterious/p/4804188.html STM32L0 HAL库 UART 串口读写功能 串口发送功能: uint8_t TxData[10]= "01234abcde"; HAL_UART_Transmit(&huart2,TxData,10,0xffff);//把TxData的内容通过uart2发送出去,长度是10,timeout的时间是最大值0xffff 串口接收功能1: uint8_t value='F'; H…