
STM32/STM8
文章平均质量分 54
STM32开发笔记
JavonPeng
提得起,放得下,提放自如,方是自在人
展开
-
ART-Pi学习笔记(1)——简介与资料
ART-Pi官方页面开源地址:github、gitee【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总【ART-PI】通用外设开发教程汇总ART-Pi LoRa开发套件 不完全教程(汇总)ART-Pi 高性能H7芯片 超强扩展 DIY利器扩展板分享技术分享硬件1、硬件结构:2、硬件配置:3、扩展接口说明:RT-Thread 开源硬件 ART-Pi 引脚扩展说明 ...原创 2021-10-12 10:19:56 · 4054 阅读 · 0 评论 -
startup_stm32f10x_hd.s文件分析
;******************** (C) COPYRIGHT 2011 STMicroelectronics ********************;* File Name : startup_stm32f10x_hd.s;* Author : MCD Application Team;* Version : V3...原创 2019-11-14 10:32:52 · 293 阅读 · 0 评论 -
STM8L库函数修正--GPIO_ReadInputDataBit
使用的库:STM8L15x_StdPeriph_Driver库函数:GPIO_ReadInputDataBit函数原型:BitStatus GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin){ return ((BitStatus)(GPIOx->IDR & (uint8_t)...原创 2018-11-07 13:48:45 · 5730 阅读 · 7 评论 -
vscode 编译、下载 Keil/MDK 工程(支持按MDK文件结构显示工程)
参考:[VS Code] 使用 vscode 直接打开 mdk 工程转载 2021-04-23 23:25:53 · 1030 阅读 · 0 评论 -
STM32运行存储在外部SPI FLASH中的代码
参考:[MDK] 分享STM32如何运行存储在SPI FLASH中的代码转载 2021-04-23 23:19:28 · 16338 阅读 · 5 评论 -
Keil(MDK)下用仿真器烧程序的同时烧写附加数据到SPI FLASH
之前在i.MX rt板块经常看到i.MX RT最新支持XXX Flash的下载算法,于是冒出一个问题,下载算法是啥。故花时间研究了一下。一、了解下载算法研究过程中参考了这篇文章:更进一步的了解Keil Flash的下载算法。经过研究得出结论(可能结论不是很准),下载算法本身是一段读写存储介质的接口函数(生动的说法应该是驱动函数),这里的存储介质可以是内部/外部RAM,也可以是内部/外部FLASH/EEPROM,FLASH可以是并口也可以是串口等等,这里不一一列举。仿真器应该通过调试接口将驱动接口程转载 2021-04-23 23:15:08 · 6101 阅读 · 2 评论 -
【问题解决】Error: C4065E: type of input file ‘./FreeRTOS/include/deprecated_definitions.h‘ unknown
问题编译报错:Error: C4065E: type of input file './FreeRTOS/include/deprecated_definitions.h' unknown原因使用了一下命令报错:CINCLUDE_FILE += -I$(shell find ./FreeRTOS/include -name '*.h')解决改为直接使用对用的文件夹:CINCLUDE_FILE += -IFreeRTOS/port/GCC/ARM_CM3CINCLUDE_FILE +原创 2021-04-22 16:01:46 · 5648 阅读 · 0 评论 -
【问题解决】 Warning: #223-D: function “round“ declared implicitly
问题编译警告: Warning: #223-D: function "round" declared implicitly原因浮点计算中引用了数学库 math.h 中的round函数解决添加c99模式:Keil:Options for Target——C/C++——勾选C99 ModeGcc:-std=c99原创 2021-04-22 17:20:26 · 2113 阅读 · 0 评论 -
【问题解决】Library reports error: __use_no_semihosting was requested, but _ttywrch was referenced
问题编译报错:Library reports error: __use_no_semihosting was requested, but _ttywrch was referenced解决添加MicroLiB库(KEIL自带的简易库):Keil:Options for Target——Target——勾选Use MicroLiB或者使用以下方法://加入以下代码,支持printf函数,而不需要选择use MicroLIB #pragma import(__use_no_原创 2021-04-22 17:41:58 · 4434 阅读 · 0 评论 -
Keil命令编译(批处理)
@echo off::查找uvprojx工程文件for /f "usebackq delims=" %%j in (`dir /s /b %cd%\*.uvprojx`) do (if exist %%j (set UV_PRO_PATH="%%j"))::Keil执行文件位置set UV=D:\Professional_Software\Keil_v5\UV4\UV4.exeecho -----------------------------------------------------原创 2021-04-22 21:58:27 · 11233 阅读 · 2 评论 -
基于makefile的STM32编译方法探索(armcc编译链)
0.前言初学单片机的时候通常使用IDE(通常是keil),IDE的好处是上手快捷;但是IDE将很多东西屏蔽了,例如什么是编译、链接、加载文件等。编译、链接功能均是由一个个命令实现的,如果把这些命令比作工地上干活的工人,那么makefile就是指导工人干活的图纸,make命令这是负责解读makefile这张图纸的工程师。出于好奇心驱使决定尝试使用makefile方式编译stm32的程序。先介绍总体思路,makefile只是一个工具,makefile也需要调用IDE背后的命令工具,所以要想实现用make转载 2021-04-21 15:21:46 · 6246 阅读 · 3 评论 -
J-Link软件和文档包的版本发行说明(3)[V6.14 ~ V6.48b版本]
官方链接:https://www.segger.com/downloads/jlink/ReleaseNotes_JLink.html版本V6.48b(2019-08-02)指挥官命令“ setWP”:将<ANY>添加到<accesstype>和<size>的允许说明符中 添加了命令“ ReadCSR”和“ WriteCSR”动态链接库如果在J-Link设置文件中指定了无效的J-Link脚本文件,则无法建立目标连接。固定。 脚本文件:即使在J-...翻译 2020-12-15 20:19:08 · 3987 阅读 · 0 评论 -
J-Link软件和文档包的版本发行说明(4)[V6.50 ~ V6.90a版本]
官方链接:https://www.segger.com/downloads/jlink/ReleaseNotes_JLink.html版本V6.90a(2020-12-14)动态链接库AutoChips AC7801x:在闪存编程操作期间未正确配置系统时钟。AC78016x系列不受影响。固定。 AutoChips AC7801x:缺少部件号AC78016MDQI。已更正。 SoC-600:在特殊情况下,将忽略要使用的指定AP和AP基址。在这种情况下,连接可能会失败。固定。 AutoChip翻译 2020-12-15 20:18:42 · 4649 阅读 · 2 评论 -
J-Link软件和文档包的版本发行说明(2)[V4.96 ~ V6.12j版本]
官方链接:https://www.segger.com/downloads/jlink/ReleaseNotes_JLink.html版本V6.12j(2017-02-15)指挥官SETB指令未正确反汇编。固定。动态链接库添加了新的exec命令,该命令允许指定要使用的核心索引。语法:“ SetCoreIndex <CoreIndex>”。 通过JLinkDevices.xml添加的设备的闪存大小未在设备选择对话框中正确显示。固定。 在特殊情况下,即使跟踪数据正确,在Cort翻译 2020-12-15 20:15:44 · 5724 阅读 · 0 评论 -
J-Link软件和文档包的版本发行说明(1)[V3.00d ~ V4.94j版本]
官方链接:https://www.segger.com/downloads/jlink/ReleaseNotes_JLink.html版本V4.94j(2014-12-10)J-FlashWindows:在不支持此选项的目标上,“安全芯片”未显示为灰色。固定。 Windows:即使选择了“将配置文件另存为..”(将配置文件存储在PC上),也试图将PCode下载到Flasher。固定。版本V4.94i(2014-12-08)动态链接库在特殊情况下,.翻译 2020-12-15 20:13:12 · 4207 阅读 · 0 评论 -
STM32 程序卡死在B. ENDP ALIGN的解决办法
一、卡死位置:startup_stm32f10x_hd.sB .ENDPALIGN二、原因使能了某个中断,但是没有写对应的中断入口函数,中断后无法找到中断入口函数造成错误三、解决方法在stm32f10x_if.c增加对应的中断入口函数。我这里忘记添加RTC中断入口:void RTC_IRQHandler(void){ if (RTC_GetITStatus(RTC_IT_SEC) != RESET) { /* Clear t...原创 2020-10-20 09:53:42 · 3694 阅读 · 5 评论 -
STM32、STM8产品型号区分,型号名含义
选型手册下载原创 2020-09-04 13:54:07 · 2201 阅读 · 0 评论 -
STM32F030C8T6 内部RTC模块到2060年重置问题记录
芯片平台:STM32F030C8T6测试RTC步骤:(1)先读出RTC的值(2)打印(3)延时2s后,年加1(4)循环操作无意中发现问题:第一次:年份在增加到 2060 年会重置时间为 2000 年。第二次:年份在增加到 2099 才会重置时间为 2000 年。第三次:年份在增加到 2060 年会重置时间为 2000 年。即每两次会有一次年份只到 2060 年就会重置时间,这应该是个bug,但是对实际使用基本没影响~~~~测试数据如下:[...原创 2020-08-11 14:20:32 · 924 阅读 · 0 评论 -
SFUD(串行 Flash 通用驱动库)移植报错解决
报错:读出的设备ID、厂商ID等是正确的。[SFUD](..\..\..\sfud\src\sfud.c:116) Start initialize Serial Flash Universal Driver(SFUD) V1.1.0.[SFUD](..\..\..\sfud\src\sfud.c:117) You can get the latest version on https://github.com/armink/SFUD .[SFUD](..\..\..\sfud\src\sf.原创 2020-07-14 11:50:41 · 6629 阅读 · 3 评论 -
STM32 HEX 文件格式解析
以*.hex为后缀的文件文件我们称之为HEX文件。HEX的英语原始意思是16进制。这种文件格式主要用于保存单片机固件。hex文件内容:整个文件以行为单位,每行以冒号开头,内容全部为16进制码,2个 ASCII码字符表示1个Hex字节。 :02 0000 04 0800 F2 1、每行以冒号开头 2、第1字节0x02表示数据区的字节个数,用ASCII表示就是4个ASCII字符。 3、第2、3字节0x0000 表示偏移地址或无用填0 4、第4字节0x04表示本行记录的类型 .转载 2020-06-02 15:57:23 · 3741 阅读 · 0 评论 -
bootloader和APP两重升级(STM32为例)
一般设计来说,bootloader作为引导程序和升级APP,改动并不大而且也相对稳定。但是如果项目中遇到非得更新bootloader的,比如协议的更新替换,这时候就有设计此方案的必要性了。 flash分区图和程序图如下,接下来的描述都是基于这图来进行分析 大概说下思路:简单的说就是设计三段程序,bootloader0、bootloader1、APP。 这里假设使用的是S...转载 2020-04-10 09:33:44 · 8856 阅读 · 8 评论 -
STM32 Keil生成的map文件分析
一、map文件生成设置:选项说明表:选项 释义 简要说明 Memory Map 内存映射 内存映射分布信息 Callgraph 图像映射 函数调用的堆栈使用以及子函数调用信息 Symbols 映射符号表 模块.o文件对应映射地址 Cross Reference 交叉引用关系 模块之间相互引用的关系 Size...原创 2020-04-09 17:37:28 · 1999 阅读 · 1 评论 -
STM32F1内部FLASH组成和访问
闪存存储器由主存储块、信息块、闪存存储器接口寄存器组成: 1、主存储器:用来存放代码和数据常数(如const类型的数据)。起始地址是0X08000000, B0,B1都接GND的时候就是从0x08000000开始运行代码的。2、信息块:系统存储器,用于存储ST自带的启动程序,串口下载代码,当B0接V3.3,B1接GND时,运行的就是这部分代码。 选择字节,则一般用于配...原创 2020-04-09 11:27:31 · 899 阅读 · 0 评论 -
Keil报错:The firmware of the connected ....解决办法
错误信息:The firmware of the connected J-Link does not support the following memory access:Read @0x02000004如下图:原因:keil版本5.24 ,需要替换更低版本的dll文件。解决方法:Keil_v5/ARM/Segger安装目录下找到JL2CM3.dllJLinkARM....原创 2020-02-27 16:58:40 · 8788 阅读 · 2 评论 -
STM32端口寄存器配置
1、CRL控制GPIO7~GPIO0(低八位), CRH控制GPIO15~GPIO8(高八位)2、每个IO端口占用CRL的4个位,高两位为CNF,低两位为MODE。常用模式值:0X4表示模拟输入模式(ADC用) 0X3表示推挽输出模式(做输出口用,50M速率) 0X8表示上/下拉输入模式(做输入口用) 0XB表示复用输出(使用IO口的第二功能,50M速率)举例:...原创 2019-12-24 14:09:37 · 989 阅读 · 0 评论 -
STM32中断优先级配置说明(NVIC_PriorityGroupConfig)
中断优先级分组表:优先级分组 抢占优先级 响应优先级 bit[7:4] 分配情况 备注 NVIC_PriorityGroup_0 取值:0 取值:0~15 0:4 0bit抢占优先级、4bit响应优先级 NVIC_PriorityGroup_1 取值:0~1 取值:0~7 1:3 1bit抢占优先级、3bit响应优先...原创 2019-11-26 09:59:32 · 11661 阅读 · 0 评论 -
串口通信校验方式(even,odd,space,mark)
串口通信校验方式(even,odd,space,mark)无校验 (no parity)奇校验 (odd parity):如果字符数据位中"1"的数目是偶数,校验位为"1",如果"1"的数目是奇数,校验位应为"0"。(校验位调整个数)偶校验 (even parity):如果字符数据位中"1"的数目是偶数,则校验位应为"0",如果是奇数则为"1"。(校验位调整转载 2019-01-22 18:39:22 · 22740 阅读 · 0 评论 -
STM32F10x JTAG端口重映射
STM32F10x系列的MCU复位后,PA13/14/15和PB3/4默认配置为JTAG功能。为了充分利用MCU I / O口的资源,会把这些端口设置为普通I/O口。【相关代码】:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能PB端口时钟RCC_APB2PeriphClockCmd(RCC_APB2...原创 2018-12-10 18:00:05 · 431 阅读 · 0 评论 -
RTC--日期必须重启才更新问题
芯片:STM32F030C8T6问题:RTC设置时间,时间可正常设置,日期需要重启才能设置成功相关代码:/************************************************函数名称 : RTC_GetDateTime功 能 : 读取RTC日期时间(含日历、星期)参 数 : RTC_DateTimeStructure -- RTC结构...原创 2018-11-10 09:14:03 · 1746 阅读 · 0 评论 -
RTC--根据年月日计算[星期]的函数
一、u8 const table_week[12]={0,3,3,6,1,4,6,2,5,0,3,5}; //月修正数据表 u8 RTC_Get_Week(u16 year,u8 month,u8 day){ u16 temp2; u8 yearH,yearL; yearH=year/100; yearL=year%100; // 如果为21世纪,年份数加100 ...原创 2018-11-09 18:42:35 · 4448 阅读 · 0 评论