STM32cubeMX / STM32cubeIDE
该专栏主要内容为使用STM32cubeMX / STM32cubeIDE这两个开发环境对STM32进行学习,开发
嘉禾天成
要阳光,要热爱生活
展开
-
STM32 串口 空闲中断 + DMA 接受不定长数据的优缺点
在STM32的串口开发过程中,我们在接收数据时,如果按照函数定义,总会受到数据长度的限制。但是因为各种因素,总希望能够通过某些操作来越过这一限制,即接收不定长数据。在这种情况下,我们实现了使用串口的 空闲中断 + DMA(传输完成中断 + 传输一半中断) 接收不定长数据的方法。这种情况又分为 裸机 和 移植操作系统 的情况。下面是对这两种情况的简单描述:裸机一、优点:1.1 应用程序通过空闲线路检测或DMA TC/HT事件获取通知1.2应用程序只有在接收到3个中断中的任何一个时才必须处.原创 2021-01-31 22:17:23 · 2133 阅读 · 0 评论 -
STM32 芯片无法用Jlink烧写,但是可以用STLink烧写
首先下载下面这个软件执行完后,找到下面的界面操作一:将原本”选中“取消;操作二:Apply原创 2021-01-15 17:10:59 · 1664 阅读 · 0 评论 -
Keil 中 Error: L6218E: Undefined symbol 解决办法
此情况分两种:一、 函数未定义此时应该在正确的文件中定义该文件。例如:函数void add(uint8_t a, uint8_t b)在math.h 中声明:uint8_tadd(uint8_t a, uint8_t b);在对应的math.c中定义uint8_t add(uint8_t a, uint8_t b) {return a + b;}二、C和C++混合编...原创 2020-02-21 22:29:00 · 15434 阅读 · 0 评论 -
#warning “Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)“
keil中使用DSP库时遇到了该问题。然后发现是包含了这个文件的后出现的问题使用DSP库首先编译器要在Option---C++--define中加上ARM_MATH_CM4例如:使用M4浮点计算和DSP库完整宏定义如下USE_HAL_DRIVER,STM32F303xC,USE_HAL_DRIVER,STM32F303xC,ARM_MATH_CM4然后将调用该库的文件夹...原创 2019-11-29 18:09:30 · 10308 阅读 · 1 评论 -
STM32cubeIDE 修改字体大小
Ctrl+shift+加/减原创 2020-11-03 23:18:02 · 11911 阅读 · 3 评论 -
如何使用 RTT 读取输入字符
if (SEGGER_RTT_HasData(0)) { SEGGER_RTT_ReadNoLock(0, RTTBuf, MAX_RTT_LENGTH); _SEGGER_RTT.aDown[0].WrOff = 0; _SEGGER_RTT.aDown[0].RdOff = 0; //SEGGER_RTT_WriteString(0, (const char *)RTTBuf); if (strcmp(RTTBuf, dbgOpen)) { ...原创 2020-12-15 22:21:03 · 1354 阅读 · 0 评论 -
STM32cube HAL SDIO Fatfs
本文在STM32F103VET6硬件环境下,通过SDIO总线,实现了对Micro_SD Card的读写实验,并成功移植了Fatfs文件系统。下面开始讲解步骤(代码主要移植自原子系列教程,不做商业用途,仅供学习)。一、SD卡的读写第一步,我们先实现对SD卡的读写功能。、首先配置SDIO总线,如图:然后记得打开中断。以后可能会用到。然后我们在工程里添加下面四个文件(记得包含他们的文件路径):然后在Main.c中,调用sdio_test.c中的SD_Test();编译,然后下.原创 2020-11-01 01:07:03 · 1111 阅读 · 0 评论 -
STM32CubeIDE EXTI实验
一、首先给作为外部中断的引脚进行配置:引脚功能配置为 GPIO_EXTIx对应的引脚属性配置如下:引脚的模式《GPIO mode》我们配置为 外部中断上升沿触发但是可以看到,它还有其他五种模式。六种模式意思对应如下:上升沿触发的外部中断 下降沿触发的外部中断 上升/下降沿触发的外部中断 上升沿触发的事件中断 下降沿触发的事件中断 上升/下降沿触发的事件中断注: 事件中断 和 外部中断 的差别:从外部激励信号来看,中断和事件的产生源都可以是一样的....原创 2020-10-03 23:00:00 · 596 阅读 · 0 评论 -
STM32cube 读取其他芯片 开漏输出引脚 的电平
有时候我们需要测量一个芯片的状态引脚,读取他的电平。该引脚是开漏引脚。首先要明白推挽和开漏的原理:K1、K2相当于口线内接的MOS管,有开关两个状态。推挽输出:口线内接上下两只MOS管,K1打开、K2闭合时相当于口线接VCC,输出高电平(输出电流)。K1闭合、K2打开时相当于口线接GND,输出低电平(吸入电流)。从电流角度看,口线即可输出电流也可吸入电流,形如一推一拉,所以名曰“推挽”。开漏输出:口线内只接了一只MOS管,口线外部可通过上拉电阻接VCC。K1闭合时,口线接地,输出低电原创 2020-05-26 19:26:21 · 2485 阅读 · 0 评论 -
STM32cubeMX STM32F1系列 IIC双机通讯之补充
在我配置完IIC的双机程序后,连接主机与从机后,试了半天,却发现无论如何也没办法成功通讯。而且检查线路也没有错,单片机也正常运行,在主机里打印的“master”和从机里打印的“slave”均能正常打印。那么我就非常奇怪了。然后查了官方资料。最后发现,STM32F1系列的IIC若要实现双机通信,那么线路必须要这样接: _________________________ ...原创 2019-09-08 14:01:21 · 1483 阅读 · 1 评论 -
STM32cubeMX STM32F1系列 IIC主机通讯
首先,用cube创建一个F1系列的主机工程。这里我选择了“STM32F103C8T6”型号的单片机最小系统板,封装为LQFP48。然后使用IIC的话可以分以下几步走:(看过从机配置的同学可以直接跳至第四步)一、设置烧录模式为Serial wire。按照图中箭头配置烧录模式二、使用外部晶振三、开启IIC此处按照红色箭头配置即可。至于中断,如果不使用中断模式接发数据...原创 2019-09-08 13:31:24 · 2819 阅读 · 1 评论 -
STM32cubeMX STM32F1系列 IIC从机通讯
首先,用cube创建一个F1系列的从机工程。这里我选择了“STM32F103C8T6”型号的单片机最小系统板,封装为LQFP48。然后使用IIC的话可以分以下几步走:一、设置烧录模式为Serial wire。按照图中箭头配置烧录模式二、使用外部晶振三、开启IIC此处按照红色箭头配置即可。至于中断,如果不使用中断模式接发数据的话可以不开(本教程不使用中断)。四...原创 2019-09-08 13:21:32 · 3824 阅读 · 0 评论 -
STM32cubeMX 定时器中断时验
首先选定一个定时器,了解你的时钟配置图中定时器的总线都是72M,我们选定定时器3,如果我们想要一秒触发一次定时器中断的话,应该将这个定时器设为1Hz,按照如下配置,但是因为我们用的是内部时钟,上图可知是8M,所以应按照如下配置:8,000,000 / 4000 / 2000 = 1Hz,然后我们在代码中添加如下片段: printf("begin\n"); HAL_TIM_Base_Start_IT(&htim3);然后再添加如下片段:void HAL_T.原创 2020-06-07 12:30:36 · 352 阅读 · 1 评论 -
stm32cube PWM实验
首先,选定一个定时器,了解你的时钟配置:因为我用的是STM32F103C8T6这个芯片,所以始终最大是72M。那么如果我们想配置一个1000Hz,占空比为50%的PWM的话,需要按照如下配置:频率 = 时钟频率 / 预分频 / 计数周期,72,000,000 / (71 + 1) / (999 + 1) = 1000Hz占空比 = 脉冲 / 计数周期, 500 / (999 + 1)= 50%然后生成工程即可。我们的配置对应的芯片引脚是PA0,烧录程序进去后,检测结...原创 2020-06-07 12:16:25 · 378 阅读 · 1 评论 -
STM32cubeMX STM32F103c8T6 IIC双机通讯 从机DMA接收程序
首先,用cube创建一个F1系列的从机工程。这里我选择了“STM32F103C8T6”型号的单片机最小系统板,封装为LQFP48。然后使用IIC的话可以分以下几步走:一、设置烧录模式为Serial wire。按照图中箭头配置烧录模式二、使用外部晶振三、开启IIC开启IIC接收DMA此处按照红色箭头配置即可。红框框中的要注意配置四、IIC基础参数设...原创 2019-09-08 15:44:37 · 3588 阅读 · 2 评论 -
STM32cubeMX STM32F1系列 IIC从机中断接收
首先,用cube创建一个F1系列的从机工程。这里我选择了“STM32F103C8T6”型号的单片机最小系统板,封装为LQFP48。然后使用IIC的话可以分以下几步走:一、设置烧录模式为Serial wire。按照图中箭头配置烧录模式二、使用外部晶振三、开启IIC开启IIC中断此处按照红色箭头配置即可。红框框中的要注意配置四、IIC基础参数设置这...原创 2019-09-08 15:34:42 · 3290 阅读 · 0 评论