
stm32
文章平均质量分 60
stm32学习过程中的
code_snow
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STM32-- 调试--调试遇到的问题
SysTick_Handler函数在rtos的时候被修改了,改回裸机的时候,SysTick_Handler函数要改回来,延时函数才会正常使用。原创 2025-04-10 01:28:45 · 113 阅读 · 0 评论 -
STM32--定时器配置、问题、细节
1.不同时钟总线上的定时器时钟频率默认是不一样的,例如stm32f103vct6,最高频率是72mhz,默认apb1的频率是36mhz,apb2是72mhz,导致其他部分同样的配置,定时器时间会相差两倍。apb1通常挂载通用定时器,apb2挂载高级定时器,在配置定时器的时候要注意,这个差异。时钟树显示apb1上面的定时器也能调整到72mhz,我没有实际去尝试。原创 2025-03-14 17:25:19 · 154 阅读 · 0 评论 -
STM32--定时器输出pwm知识点_stm32 pwm-优快云博客
要设置成PWM_1_TIM_Period设置成0xffff - 1,设置成其他数值会出现脉冲一会有一会咩有。1. 选择TIM_OCMode_Toggle电平翻转模式,原创 2025-01-16 15:20:25 · 544 阅读 · 0 评论 -
STM32-- keil -常用功能
uvprojx文件就是我们平时双击打开的工程文件,它记录了整个工程的结构,如芯片类型、工程包含了哪些源文件等内容;uvoptx文件记录了工程的配置选项,如下载器的类型、变量跟踪配置、断点位置以及当前已打开的文件等等;uvguix文件记录了MDK软件的GUI布局,如代码编辑区窗口的大小、编译输出提示窗口的位置等等。在keil菜单栏没找到怎么修改工程名称,目前先使用这种方式。1.修改整个工程名称(keil-c51编辑器)原创 2024-12-20 08:34:53 · 1066 阅读 · 0 评论 -
stm32-- 存储-flash和ram
是嵌入式系统中存储全局变量和静态变量的两种主要内存区域,它们分布在 RAM 中,但初始化方式和功能不同。通过合理优化 RW Data 和 ZI Data,可以有效减少 RAM 的占用,提高嵌入式系统的运行效率。栈使用超过定义大小时,可能会覆盖其他 RAM 区域,引发不可预料的行为。通过合理规划堆和栈,可以充分利用 RAM,确保嵌入式系统的稳定性和性能。当堆和栈在 RAM 中相遇时,可能会导致程序异常。在 STM32 的 RAM 中,堆和栈的位置通常是通过。中,但它们的分配方式和用途有所不同。原创 2024-12-13 22:48:33 · 1294 阅读 · 0 评论 -
STM32-- 看门狗--介绍、使用场景、失效场景
虽然看门狗是一种非常可靠的保护机制,但它并不是万能的。如果系统设计或硬件环境存在问题,看门狗也可能无法复位。通过合理设计、冗余机制和充分测试,可以最大程度地降低看门狗失效的风险。原创 2024-11-28 01:43:24 · 2102 阅读 · 0 评论 -
STM32-- keil使用 -设备选择
就能选择SONIX SN8F5000 Family了,不安装SN-Link_Driver for Keil C51的话,会找不到sn8f5000系列的芯片。SN-Link_Driver for Keil C51_V3.00.005安装到keil c51的安装文件夹,keil c51新建工程的时候,比如stm8系列在这里是没有的,因为他的内核是哈弗架构。在project--》manager--》pack installer,更新芯片包,在安装驱动包之前,这个下拉栏是灰色的,只有固定的设备可以选择;原创 2024-11-27 19:15:30 · 518 阅读 · 0 评论 -
STM32-- 技巧-延时
【经验分享】STM32中实用的精确延时方法。原创 2024-11-23 20:19:02 · 427 阅读 · 0 评论 -
STM32-- keil 的option for target使用
如:stm32f103c8t6的工程,可以直接在device这里修改成stm32f103vct6,虽然引脚不一样,但是很多一样的地方,可以直接使用,有些不修改也可以下载程序。fromelf -c -o "$L@L.txt" "#L" 生成txt格式的汇编文件,和hex文件同名,同文件夹下面;fromelf -c -o "$L@L.asm" "#L" 生成asm格式的汇编文件,和hex文件同名,同文件夹下面。会给每个c文件都生成,因此没问题的情况下,是不勾选这两个选项,要不然,编译会很耗时间。原创 2024-11-23 20:15:12 · 665 阅读 · 0 评论 -
STM32-- 调试- 延时、编译空循环
模拟串口输出字符,用到延时函数,同样的延时函数,会有正常和不正常输出的情况;也能正常发送串口数据,电脑接收到[19:42:11.328]收←◆Ahello02。Get_SysTimeMs__和delay_us__函数,可以正常发送串口函数。Get_SysTimeMs__和delay_us__函数,可以正常发送串口函数。Get_SysTimeMs__和delay_us__函数就能正常发送串口数据。只有delay_us函数,使用while循环,发送串口数据更是乱码。printf("中文\n");原创 2024-11-23 19:45:55 · 859 阅读 · 0 评论 -
STM32-- 调试 -日志输出
在调试嵌入式程序时,输出日志是非常重要的环节,可以帮助开发者定位问题、监控程序状态和性能。原创 2024-11-23 09:08:11 · 1739 阅读 · 0 评论 -
STM32-- 串口发送数据
?答:的作用是等待串口的发送数据寄存器(TXE,Transmit Data Register Empty)变为空,确保可以向串口发送新的数据。这是 STM32 标准外设库(SPL,Standard Peripheral Library)提供的函数,用于检查 USART 的标志位状态。原创 2024-11-23 05:49:25 · 758 阅读 · 0 评论 -
STM32-- 基础-系统结构简单介绍-STM32f103c8t6
10~19号引脚 PA0-WKUP、PA1、PA2、PA3、PA4、PA5、PA6、PA7、PB0、PB1:都是IO口(PA0还有WKUP功能,这个可以用于唤醒处于待机模式的STM32)23~24、35~36、47~48号引脚 VSS_1、VDD_1、VSS_2、VDD_2、VSS_3、VDD_3:系统的主电源口(VSS是负极,VCC是正极)25~33号引脚 PB12、PB13、PB14、PB15、PA8、PA9、PA10、PA11、PA12:IO口。21、22号引脚 PB10、PB11:IO口。原创 2023-12-23 22:25:44 · 3341 阅读 · 0 评论 -
STM32-- vscode编辑keil工程
在区域设置里面“选择beta版,提供全球utf-8 提供全球语言支持”,一个是没有很好的解决问题,资料还说可能会引起某些不可知编码问题,于是放弃了。然后改成,默认打开gb2312个his,其他格式需要检测显示,结果还可以,能够正=正常显示gb2312文件,同时能够很好的检测utf-8格式并显示。2.让vscode能够显示ansi(或者gb 2312)格式,开始是想着vscode能够自动检测gb2312格式然后显示,但是检测时灵时不灵。1.想着创建keil阶段,就使用utf-编码格式。原创 2024-07-07 21:28:41 · 1823 阅读 · 0 评论 -
STM32-- 扩展 while(1)
摘抄自--优快云 a1232345 单片机中while(1)有两种用途,while(1);意义:这是一个死循环,代码不再向下执行。用途:1.让主函数只循环一次2.一般在调试代码时,为了检测一部分代码是否OK,防止后面的代码干扰执行结果,会在观测点加上while(1);3. 有些代码检测到运行错误时,会抛出错误(打印、设置错误码),然后...原创 2018-07-08 16:32:44 · 8970 阅读 · 1 评论 -
STM32-- KEIL使用小工具
KeiL 调试时保存watchwindow的参数变量到文件。原创 2024-06-24 19:26:14 · 635 阅读 · 0 评论 -
STM32-- 串口中断
问题一:串口助手发送的数据,第一个数据会丢失,再次发送数据单片机接收的才完整。原创 2023-08-01 20:31:45 · 507 阅读 · 0 评论 -
STM32-- JLINK安装、使用及问题
在官网下载的J-Link V7.96i,安装完成后,keil报错找不到sw device。解决方式:重新安装其他版本。原创 2024-05-24 18:46:02 · 1390 阅读 · 1 评论 -
STM32-- 通讯-串口通讯、RS485、232、SPI、I2C
串口通讯串口通讯串口通讯。原创 2024-06-03 14:40:40 · 688 阅读 · 0 评论 -
STM32--JLINK使用、下载问题记录
解决:断开sw的3.3v,只连接gnd,swclk,swdio可以下载程序。使用segger jflash可以连接成功,但是下载程序会失败;解决过程:尝试一边复位一边下载程序,一直失败。现象:keil下载,会提示如上信息;原创 2024-11-21 20:12:06 · 273 阅读 · 0 评论 -
STM32--学习记录---jlink使用
target-》mannual programming-》erase sectors或者erase chip;(不擦除也能下载程序,)9.下载成功后: target-》mannual programming-》start application。6.选择 target-》connect;1.打开软件,会提示是否打开上一次的.jflash文件;connect成功和下载程序后,单片机处于不受控制状态;SEGGER J-Flash V6.82g下载程序;3.选择器件,找不到,可以找相近的或者相近的核心。原创 2024-11-05 21:51:30 · 469 阅读 · 0 评论 -
STM32--KEIL新建工程过程
Options for Target -> C/C++ 菜单下修改外汇晶振频率)1. Crystal设置:晶振频率(一般8MHz或12MHz)2. Xtal(MHz):填写外部晶振频率3. Memory Layout设置:- IROM1: 0x08000000, Size根据芯片选择- IRAM1: 0x20000000, Size根据芯片选择```3. 添加标准库文件:```1. 添加启动文件:2. 添加标准外设库文件(根据需要):等等...```原创 2024-10-27 08:27:16 · 1532 阅读 · 0 评论 -
STM32--调试-printf输出
1.问题:同样的can接收中断,在使用正常模式的时候,中断里面的printf可以正常打印,使用回环模式的时候,也正常进入中断,但是printf却没有打印,UART/串口忙碌:如果 UART 正在发送其他数据,中断中的 printf 可能无法立即输出。printf 通常不是中断安全的。时序问题:中断可能在 printf 完成输出之前就结束了,导致输出不完整或丢失。中断嵌套:如果发生中断嵌套,高优先级中断可能会打断 printf 的执行。系统负载:系统负载较重时,可能影响中断处理和串口输出的时序。原创 2024-10-18 10:35:04 · 402 阅读 · 0 评论 -
STM32-- 串口介绍
电压什么不对,后来确定原因是引脚反了,虽然反了,但是中间偶尔也能收到几个正确的字符,所以开始主要以为是程序有问题。如果max输入端没问题,输出端差分引脚ab接反了,电脑串口助手也能收到字符,就像波特率不对,也能收到字符,不过解析出来的是乱码。max485:5v左右驱动,不过有时候3.3v驱动也可以使用,具体有什么问题或者通过电路规避问题还没有了解过。此电路图是简单版本,没有偏置电路(上下拉),防冲击器件,可以使用的,只是少了安全等旁电路。MAX488/MAX490/MAX491:用于rs422。原创 2024-11-22 09:39:32 · 689 阅读 · 0 评论 -
STM32--外设学习记录--can通讯
现象:程序运行到 if (HAL_CAN_Start(&hcan)!= HAL_OK)死机了,把连接线拔掉,又能继续往下运行了,或者不连接线就一直是正常的。当时电路连接:stm32f103c8t6的canrx(pa11)----另一个stm32f103c8t6(未上电)的cantx引脚(pa12)canrx引脚在连接外部电路会影响程序初始化,HAL_CAN_Start这一步进入了死机,printf("HAL_CAN_Start初始化错误\n");原创 2024-10-17 16:04:12 · 322 阅读 · 0 评论 -
STM32--keil调试报错,未解决
;.ANY (+RO)RW data。原创 2024-08-20 17:14:33 · 564 阅读 · 1 评论 -
STM32-- keil常见报错与解决办法
注释掉之后,一直读取不正确,因为我的while里面的延时判断有问题,应该是太短了,有个printf,--timeout之后,printf会把时间拉长,可是去掉之后,timeout减到0,相关标志位还没有变化,可是实际上这个整个while时间很短,导致直接在这里return了。3. 现象:一直发送无用数据到串口,使用debug模式,刚debug连接上,还咩有点击运行,就自动运行了,然后一直发送 \0\0;原因:硬件引脚引起的,断开相应的连线,就正常了,不知道为什么。原创 2024-11-22 09:37:56 · 748 阅读 · 0 评论 -
STM32--12864应用
主要记录实际使用中的一些注意点。原创 2024-08-06 11:59:32 · 895 阅读 · 0 评论 -
STM32-- GPIO介绍、使用学习
明解STM32—GPIO理论基础知识篇之基本结构。原创 2024-08-05 12:08:18 · 554 阅读 · 0 评论 -
STM32-- keil介绍、使用学习、配置
1.使用keil创建stm32工程要包含的文件:原创 2024-08-02 09:58:35 · 603 阅读 · 0 评论 -
STM32-- 调试-通讯:单片机串口和电脑通讯
485或者232信号在工作的时候直接和其他设备连接即可,在调试或者其他需要和电脑连接的时候,通过485转USB(232转USB)和电脑通讯。单片机的gnd和电脑的gnd连接,电脑可以正常接收,断开共地,只有一个TX--RX连接,电脑接受的是乱码。串口,芯片,转换器,设备之间的通讯的接线,都是要TX--RX, RX--TX 交叉连接。单片机串口---ttl/cmos转USB---电脑USB口。2.单片机串口--485--485转USB--电脑。1. 串口--串口转USB--电脑,通讯。原创 2024-06-26 09:59:56 · 2065 阅读 · 0 评论 -
STM32--STM32CubeMX的使用、库、stm32CubeIDE的使用
刚打开时,ARM Compiler:use Default compiler version 6,编译会报错和_weak相关的错误。修改成ARM Compiler:use Default compiler version 5就可以了。不知道为什么会这样。STM32CUBEMX自定义库安装位置及加载离线库方法记录。STM32Cube使用的是HAL库和LL库,标准库不知道。cube建立工程可以选这使用hal或者ll库。STM32CubeMX的工程建立。keil打开刚才建立好的工程,原创 2024-06-24 08:46:07 · 593 阅读 · 0 评论 -
STM32--介绍和官方资料地址
STM32标准外设软件库。原创 2024-06-24 08:24:36 · 313 阅读 · 0 评论 -
STM32-- ARM核心Cortex-M3与Cortex-M4(资料)
ARMCortex-M3与Cortex-M4权威指南免费下载原创 2023-03-07 15:02:12 · 223 阅读 · 0 评论 -
STM32--定时器输出pwm的几种模式
在STM32的定时器模块中,输出比较模式和PWM模式各有其特定的应用场景和优缺点。原创 2024-06-12 00:42:57 · 5359 阅读 · 0 评论 -
STM32--调试-串口下载
通过232串口下载程序之后,flymcu显示下载成功,重启,stm32f103不运行,有时候又可以运行,很随机,怀疑过晶振,测的晶振88%占空比,找资料,说这样会导致不稳定,又找了以前的板子测晶振,也有这么大占空比的,应该不是晶振的问题。找了一会,就看到下面的文章,他这个过程和我差不多,就有检查了一下我的板子,原来是Boot0的下拉电阻焊成了电容,改正后,正常了,问题解决。不过我没有测试,在焊错成电容的情况下,用调试模式会不会出现不运行的情况。先不测了。原创 2024-04-03 02:46:42 · 692 阅读 · 0 评论 -
STM32--使用keil无实物(软件)仿真,虚拟串口通讯
编译完成后,串口显示打开,说明keil使用了vspd的串口。设置好ini文件和程序后,编译前虚拟串口是关闭的。无硬件仿真,有些定时器和其他一些配置通过。然后就是修改程序,接收和发送数据。进行配置,再把配置文件给keil。原创 2023-07-04 13:04:45 · 9762 阅读 · 0 评论 -
STM32--Keil MDK 5 仿真STM32F4报错no ‘read‘ permission
MDK软件模拟仿真提示没有读写权限,只能单步运行。关于Keil MDK 5 仿真STM32F4报错no ‘read’ permission的解决方法µVision 调试器为所有 ARM7、ARM9、Cortex-M0/M0+、Cortex-M3 和 Cortex-M4 处理器内核提供完整的指令集仿真。然而,对于许多设备来说,模拟片上外设的行为是不可能的。对于一些较旧的设备, Keil MDK 5仿真模拟仍然可用,像STM32F1系列。原创 2023-07-03 17:55:33 · 6574 阅读 · 3 评论 -
STM32--flash(目前仅有转载的资料)
stm32f407ve的相关datasheet。上面这个是以STM32F103R。原创 2023-05-15 15:29:37 · 173 阅读 · 0 评论 -
STM32--编程小知识、技巧
/经过运算后,a 的值 a=1001 0011 b 14 // a 的第 1 组的 bit2、bit3 被清零,而其它位不变。//经过运算后,a 的值 a=1001 1011 b 13 // a 的 bit2 位被被零,而其它位不变。//所得的数与 a 作”位与&”运算,a = (1001 1111 b)&(1111 0011 b),//所得的数与 a 作”位与&”运算,a = (1001 1111 b)&(1111 1011 b),//上述(~(3原创 2023-05-12 16:38:48 · 1299 阅读 · 0 评论