一、写在前面 ADC通道采集数据的两种方式: 1)ADC轮询采集数据直接放到数组中; 2)采用中断方式,ADC采集完成进入中断,中断关闭ADC采集,取数据之后再打开ADC采集。以下按第一种方式实现:二、ADC多通道配置1)配置通道及参数 如果要控制轮询采样通道,设置Sequencer参数,Rank1,2,3即为采样通道顺序。 2)配置DMA3)配置引脚二、配置RCC、SYS、时钟及ProjectManager,生成代码。三、代码部分 需手动开启ADC采集:HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&ADC1_Value,6);/*
遇到问题一次偶然经历,串口接收数据时,只接了TX和RX,忘了接地线,单片机能发送数据,但是一旦接收一个字节数据,马上就死机,表现为主函数无反应,串口能进中断,也能响应,但是不能再发送数据了。·经过排查,串口是进入了overrun中断·猜测是没接地线导致串口电平错误,一帧接收完后RX引脚处于不正确的电平,导致串口进入错误中断·通过调用FLAG查询函数可以得知overrun中断标志位被置位LL_USART_IsActiveFlag_ORE(constUSART_TypeDef*USARTx)·原因是在配置串口参数时,Overrun和DMAonRXError默认是打开的。关于Overrun和DMAo
问题描述我们通过485和第三方设备进行通信时,是通过接收中断完成数据的接收,但是在实际测试过程中发现设备的应答内容会出现偶发的缺少一个字节。后续经过问题的分析将串口的接收机制改为使用DMA方式接收数据,但是由于该设备会涉及到两个扫描指令,两个指令的应答内容是不同的,但是在实际测试中发现本属于第二个指令的应答内容会出现在第一个指令应答的位置。问题分析字节丢失分析初次遇到此问题时怀疑是设备应答出现了异常,但是通过并联一个485监听发现出现字节丢失问题时报文内容时正常的。那也就是说整个数据链路到H750都是正确的,问题也就是出在了750内部了,我们再结合数据接收的方式:通过接收中断逐个字节获取设备应
一、概述 无论是新手还是大佬,基于STM32单片机的开发,使用STM32CubeMX都是可以极大提升开发效率的,并且其界面化的开发,也大大降低了新手对STM32单片机的开发门槛。 本文主要讲述STM32芯片的DMA的配置及其相关知识。二、软件说明 STM32CubeMX是ST官方出的一款针对ST的MCU/MPU跨平台的图形化工具,支持在Linux、MacOS、Window系统下开发,其对接的底层接口是HAL库,另外习惯于寄存器开发的同学们,也可以使用LL库。STM32CubeMX除了集成MCU/MPU的硬件抽象层,另外还集成了像RTOS,文件系统,USB,网络,显示,嵌入式A
CubeMX配置串口通讯(轮询方式)前言一、串口的介绍二、实验过程1.实验材料2.STM32CubeMX配置PWM3.代码实现重载printf轮询接收4.编译烧录5.硬件连接6.实验结果重载printf结果串口轮询接收结果总结前言本章介绍使用STM32CubeMX对串口进行配置的方法,因为我的最小系统没有其他外设,所以使用串口进行调试很重要,首先实现重载printf串口输出,然后实现串口通讯有三种方式:轮询,中断和DMA,接下来进行逐一介绍,本章接仅仅实现串口轮询接收和重载printf功能。一、串口的介绍通用同步异步收发器(UniversalSynchronousAsynchronousRec
文章目录前言一、串口阻塞方式收发STM32CubeMx配置串口发送/接收函数阻塞发送函数阻塞接受函数二、串口中断方式收发STM32CubeMx配置串口中断函数中断发送函数中断接收函数中断处理函数接收中断回调函数:三、printf重定向附录前言在上一篇博客里面写了串口通信的理论知识,在这一篇中将讲述串口通信在STM32CubeMx里面的配置,以及在函数里面怎么使用。对于串口发送信息,分为三种方法:串口阻塞方式收发、串口中断方式收发、串口DMA方式收发。(DMA方式在之后的DMA章节讲解)一、串口阻塞方式收发STM32CubeMx配置关于STM32CubeMx的基础配置讲解可以参考这篇博客STM3
STM32CubeMXSTM32CubeMX____Freertos任务通信:队列、信号量、互斥量,事件组,任务通知STM32CubeMX一、STM32CubeMX设置时钟配置HAL时基选择TIM1(不要选择滴答定时器;滴答定时器留给OS系统做时基)使用STM32CubeMX库,配置Freertos二、实验一:消息队列消息队列是什么?适用于什么地方?FreeRTOS消息队列和数组的几个区别:创建消息队列创建任务代码部分实验现象三,实验二:信号量信号量是什么?适用于什么地方?二值信号量`代码部分`实验现象计数信号量`代码部分`实验现象四,实验三:互斥量互斥量是什么?适用于什么地方?`代码部分`实
文章目录SPI通信SPI简述一个关于时钟系“小”通信协议的问题7针OLED使用SPI协议显示OLED软件SPIOLED硬件SPIOLED硬件SPI优化版总结SPI通信购买了逻辑分析仪后,总想着把所有的通讯信号全都看一遍。之前一篇笔记讲的是串口通信,做了一些小实验,搞清楚了如何基于底层利用串口传一些“非标”的数据。关于通信协议的第二篇,我想来看看SPI通信。SPI简述SPI通信是Serialperipheralinterface的缩写,中文是串行外设接口,它可以使单片机与各种外围设备以串行的方式进行通信和交换信息,外围设备包括FlashRAM、网络控制器、LCD屏幕、AD转换器、甚至是其他的MC
CubeMX的安装和使用前言一、CubeMX简介二、软件安装二、软件使用HSE和LSE时钟源设置时钟树配置功能引脚配置配置Debug选项生成工程源码总结前言本章对STM32CubeMX的安装和使用做简单介绍一、CubeMX简介STM32CubeMX是一种图形化工具,它允许非常简单地配置STM32微控制器和微处理器,并通过逐步过程为Arm®Cortex®-M内核生成相应的初始化C代码,或为Arm™Cortex®-a内核生成部分Linux®设备树。STM32CubeMX具有如下特性:①直观的选择MCU型号,可指定系列、封装、外设数量等条件;②微控制器图形化配置;③自动处理引脚冲突;④动态设置时钟树
随着时代的进步,OLED显示屏成为了继LCD显示屏之后的新一代显示屏技术,OLED具有可视角高,功耗低,厚度薄,耐冲击、振动能力强,像素响应时间低等优点,在嵌入式开发中,OLED显示器也是一个主要的部分,制作OLED显示模块的驱动也是学习STM32路上的重要一部分,本篇将从零开始,一步一步教你编写属于自己的OLED驱动,全部源码放在交流群,有需要的可以入群拿,喜欢的不要忘了点赞以及关注博主哦交流Q_qun:659512171目录一,基础知识:二,STM32CubeMX配置:1,新建工程:2,配置工程:(1)配置RCC时钟:(3)配置调试:(4)配置IIC/SPI: SPI: