草庐IT

CubeMX-Keil

全部标签

Keil STM32配置SRAM启动并解决SRAM模式代码跑向中断向量表导致程序跑飞的问题

STM32的Flash的可擦写次数在10000次,在学习或调试过程中为了延长Flash的寿命,将程序写入SRAM是一个很好的办法。在百度上找到的SRAM启动方法总有各种各样的问题,接下来我将会提供一个完整的思路给大家学会如何配置SRAM启动的环境。这里用来演示的开发板是STM32F103C8T61.在STM32上调整BOOT引脚   将STM32的BOOT0和BOOT1上拉,下次RESET(重置)将会进入SRAM启动模式。   2.打开Keil,新建/打开一个工程  这个就不要我放截图了吧==3.创建一个新的Target用于保存SRAM启动配置   在Explorer(文件浏览器)中,右击Pr

一文教你学会keil软件仿真

仿真在我们调试代码中是非常重要的。通过仿真,我们可以快速定位到错误代码,或者错误逻辑的地方。这里我就以上一篇博客为例,教大家如何软件仿真(软件仿真不需要单片机,直接通过keil软件进行代码调试)。一.打开工具 二.选择软件仿真三.开始仿真,选择开始仿真按钮 这里有4个选择,分别是1.进入当前函数,2.越过当前函数(没进函数),3.跳出当前函数(已经进去执行),4.执行到光标处。 四.观察变量我们这里是选择一个全局变量,然后右键,点击Watch1,这样之后就能到Watch1窗口观察flag1值的变化。这里我把flag1flag2都添加到了Watch1。方便同时观察。 五.运行程序我们这里没有设置

STM32 keil MDK配置FPU详解

记录下keil对FPU的配置,及对应的宏参数。文章目录前言一、一些宏的说明二、勾选开启FPU前言FPU单元是芯片上一个独立于CPU处理的浮点运算单元,整个单元可以被使能和关闭。STM32F4带有32位单精度硬件FPU支持浮点指令集。相比Cortex-M3、Cortex-M0等无FPU的芯片高出数十倍甚至上百倍的运算性能。STM32F7/H7及以上处理器带有双精度硬件FPU。如果芯片支持FPU的话,ST公司会在驱动库中添加对应宏定义__FPU_PRESENT。下面这个是STM32G4系列,支持FPU没有FPU的芯片一般不会有这个宏定义,就像下面这个F1的一、一些宏的说明有效配置FPU的方法如下图

【STM32+HAL库+CubeMX】UART轮询收发、中断收发、DMA收发方法及空闲中断详解

Author:DrinkCat(szt@drinkcat.com)Copyright©2023DrinkCatOriginallink:DrinkCat’sBlog1.什么是UART?UART是一种异步串行通信接口,常用于通过串口与外部设备进行通信。它通过发送和接收数据帧来实现数据传输,使用起来相对简单。UART通常包含发送器(Transmitter)和接收器(Receiver),通过两根信号线(传输线)进行双向通信。2.UART协议内容简介UART协议将一长串数据切成很多固定长度的小段,分别发送。每小段数据前后会加上一些附加数据以保证通信的实时性和准确性,最后形成的每个小段叫做一个数据包——

stm32 使用keil无实物(软件)仿真,虚拟串口通讯

准备1.keil2.vspd虚拟串口3.sscom串口助手4.CubeMX//哪里报错no‘read‘permission,把哪里map一下map0x40000000,0x400077FFreadwrite   //APB1map0x40010000,0x40014BFFreadwrite   //APB2map0x40020000,0x4007FFFFreadwrite   //AHB1map0x50000000,0x50060FFFreadwrite   //AHB2map0x60000000,0xA0000FFFreadwrite   //AHB3map0xE0000000,0xFFFF

STM32 cubemx+串口空闲中断+DMA双缓冲

        写这篇文章是为了记录下之前做过的项目中用到的一部分关键技术,之前做过的项目中涉及到采用最小开销来实时接收遥控器数据、能够准确验证传输过来数据的准确性,减小误差率,要求能稳定适用于不同的环境。目录1、为什么要用到串口空闲中断?2、为什么要用到DMA双缓冲?3、具体代码流程。        (1)cubemx配置stm32串口DMA双缓冲。        (2)添加串口中断处理函数。        (3)根据手册处理遥控器数据1、为什么要用到串口空闲中断?        在stm32中,uart是最为常见的通信方式——它每次接收一个字节,我们可以使用轮询的方式,轮询就是不断去访问一

KEIL5--Error: L6915E: Library reports error: __use_no_semihosting was requested报错解决方法

__use_no_semihostingwasrequested:要求不使用半主机模式。    比较简单的一个解决方法就是点击“魔术棒”,在Target标签下有个UseMicroLIB,勾选UseMicroLIB,再编译就不会报错了。    ”Use MicroLIB”,这是KEIL自带的一个简易的库,使用Use MicroLIB微库不需要强调不使用半主机(nosemihosting)模式。    要想修改用printf函数输出到指定串口,可以通过修改usart.c中的重定义fputc函数代码来改变输出到指定串口:intfputc(intch,FILE*f){ while((USART1->S

Keil导入STM32芯片包

问题:在keil中新建项目时没有stm32芯片包,需要手动导入STM32的芯片包。导入不成功很大可能是因为没有设置以管理员身份运行。解决方法:下载并解压STM32F0XXPACK.zip(以F0系列为例),得到一个如下的文件。找到安装目录下\Keil_v5下的Uninstall.exe,属性->兼容性->以管理员身份运行3.以管理员身份重新启动Keil,点击PackInstaller->File->Import,选择第一步的文件导入即可。这里0%的时间大概两三分钟,然后很快100%了(或许是意外)。再新建项目就能看到STM32的芯片了。

[keil] uv编译分析

假设Keil安装路径: C:\Keil_v5\假设工程在 d:\HELLO, 工程Targets名:Simulator[在ManageProjectItems中可修改]如下指令为:Build(F7)  C:\Keil_v5\UV4\UV4.exe-bd:\HELLO\Hello.uvproj-j0-tSimulator-od:\HELLO\uv4.log如下指令为:Rebuild(Ctrl+Alt+F7)C:\Keil_v5\UV4\UV4.exe-rd:\HELLO\Hello.uvproj-j0-tSimulator-od:\HELLO\uv4.log从以上指令看出uv4通过 uvproj

STM32使用STM32CUBEMX配置FreeRTOS+SDIO4bit+FATFS注意事项

一、使用STM32CUBEMX配置FreeRTOS+SDIO4bit+FATFS注意事项:以STM32F429为例:1、SDIO配置配置为4bit模式,此配置不是最终配置,后面会在代码进行修改。2、Fatfs配置SetDefines选项中的配置可以默认,最重要注意AdvancedSetting选择中的配置,如下该界面配置默认Usedmatemplate是默认使能的,并且不可以选择,只能选择使能,所以需要使能SDIO中断和SDIODMA(注意:如果不使能可能会出现问题),如下图所示:在使能中断之后,注意SDIOglobal中断要小于或者等于SDIODMA的中断,否则会出现问题3、FreeRTOS