STM32
文章平均质量分 59
wuhuijun165
这个作者很懒,什么都没留下…
展开
-
ucosiii源码注释
ucosiii系统源码注释原创 2022-04-13 10:34:44 · 742 阅读 · 0 评论 -
一次AD波形的疑惑
ST单片机,配置4通道,DMA读取。进ADC前有个放大器做的电压跟随,结果测量管脚波形时发现,即便输入端为0V,输出端(进单片机)也会有周期性波动,如下图:还以为是放大器出了问题,或者是地线不干净啥的,搞好久搞不掉这个波动。后来发现是因为AD模块在周期性的切换通道导致的,至于为啥切换的时候会有这种上冲(只在接0V时,不同的电压还会有可能是下冲),搞不清,知道怎么来的就行了吧哎,浪费几天时间。...原创 2021-07-02 17:52:41 · 426 阅读 · 1 评论 -
FATFS能读不能写
STM32F103RC芯片,SPI口读写SD卡,用的是正点原子的程序,操作过程中能正常读文件,写文件时报错FR_DISK_ERR,单步调试会有硬件错误,程序会挂掉。不明就里的解决办法:增加了一段延时#if _USE_WRITEDRESULT disk_write ( BYTE pdrv, /* Physical drive nmuber (0..) */ const BYTE *buff, /* Data to be written */ DW...原创 2020-12-22 17:14:52 · 554 阅读 · 0 评论 -
STM32F103的I/O口输入、输出电流的大小,I/O口注入电流
I/O口灌电流拉电流(输入输出的电流)特性查手册5.3.14 I/O port characteristics General input/output characteristics谷歌翻译:GPIO(通用输入/输出)可以吸收或提供高达+/- 8 mA的电流,并且吸收或提供高达+/- 20 mA的电流(使用放宽的VOL / VOH)。在用户应用中,可以驱动电流的I / O...原创 2019-01-03 13:53:19 · 32449 阅读 · 0 评论 -
Pin Swapping Not Avail
AD13画图时器件管脚总是变绿,规则检查报错Pin Swapping Not Available,一时找不出原因。后发现是自己之前有敷地,为了方便看图,又将敷地给隐藏了,这样器件换个位置管脚就都是绿的,。...原创 2018-04-06 11:40:04 · 4929 阅读 · 0 评论 -
<抄>STM32 定时器有时一开启就进中断的问题
http://www.51hei.com/bbs/dpj-40940-1.html整理:MilerShao 在用到STM32定时器的更新中断时,发现有些情形下只要开启定时器就立即进入一次中断。准确说,只要使能更新中断允许位就立即响应一次更新中断【当然前提是相关NVIC也已经配置好】。换言之,只要使能了相关定时器更新中断,不管你定时间隔多长甚至不在乎你是否启动了相关定时器转载 2016-11-08 16:46:45 · 4067 阅读 · 2 评论 -
程序死在while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET)处
芯片:STM32F030C8 调试环境:Keil uVision5 问题:调试SPI读写FLASH芯片W25Q32时,程序死在while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET)处,不管是在线仿真还是程序下载到芯片内都不行,将此语句改成直接寄存器操作也不行。 解决的方案:按论坛的方法,将该语句替换为while(SPI_原创 2017-07-12 12:26:46 · 20694 阅读 · 0 评论 -
STM32L151C8周期性从待机模式唤醒(RTC Wakeup Timer)
#include "stm32l1xx.h"#include "system_stm32l1xx.h"#include "OLED.h"#include "delay.h"void RtcWakeUpConfig(void);u8 RtcInit(void);u8 RtcConfig(void);int main(){ DelayInit(); //延时初始化 RC原创 2017-03-16 22:55:15 · 14097 阅读 · 2 评论 -
芯片上电休眠或者JTAG禁用后怎么下载程序
—STM32器件,keil环境,一不小心上电就进入了待机模式,没法正常步骤下载程序了,怎么办? —解决办法:按住芯片复位键不放,再点击下载,此时编译环境刷提示信息,此时快速释放复位键,一般即可下载成功。简而言之,按住复位键,点击下载程序,择机释放复位键。JLink info:DLL: V4.66 , compiled Mar 11 2013 11:00:46 Firmware: J-Link A原创 2017-03-13 17:25:56 · 4749 阅读 · 1 评论 -
Keil环境,在调试STM32中犯过的错
1、貌似的变量冲突 程序中有一个全局变量赋值gUI = 0x0A;可是发现gUI并没有获得这个值,而是另一个位于RAM区首地址0x2000 0000的全局变量获得了这个值,感觉奇怪,堆栈溢出? 后来检查发现,在程序的前一个子函数中有语句:char ID[8];sprintf(ID, "%02X%02X%02X%02X", Card_Id[0], Card_Id[1], Card_Id...原创 2017-03-17 21:27:40 · 1781 阅读 · 0 评论 -
STM32F103C8T6低功耗测试(待机模式)
只测试了待机模式,待机模式实现系统的最低功耗。 原理图如下,一开始全部焊接了,其中S2用来进入待机,S1用来唤醒 测试程序为:#include "stm32f10x.h"#include "system_stm32f10x.h"void Sys_Standby(void){ RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, E...原创 2015-10-30 21:28:38 · 35970 阅读 · 4 评论 -
<转>Keil硬件仿真调试时,看一段程序运行的时间
为了保证在MDK中读取正确的程序运行时间,必须对仿真器的跟踪项进行设置。 以J-Link为例。 在工程的“Options for Target…”目标选项界面中,选择标签“Debug”,进行调试设置界面,选择使用“Cortex-M3JTAG”作为仿真器,然后点击右侧的“Settings”按键,进入J-Link设置界面。 点击标签“Trace”进入跟踪设置界面,将“Core C转载 2016-11-08 20:00:51 · 13335 阅读 · 0 评论 -
STM32F103一些细节
当I/O端口被配置为输出时:● 输出缓冲器被激活─ 开漏模式:输出寄存器上的’0’激活N-MOS,而输出寄存器上的’1’将端口置于高阻状态(PMOS从不被激活)。─ 推挽模式:输出寄存器上的’0’激活N-MOS,而输出寄存器上的’1’将激活P-MOS。● 施密特触发输入被激活● 弱上拉和下拉电阻被禁止● 出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器原创 2015-12-05 17:38:49 · 881 阅读 · 0 评论 -
STM32F103内部弱上拉弱下拉电阻阻值的大小
内部上拉下拉电阻阻值典型值40K欧。查STM32F103x6/STM32F103x8/STM32F103xB的DATASHEET的5.3.12 I/O port pin characteristics如下:红框中所示为内部弱上拉和下拉电阻阻值。原创 2015-10-30 22:41:58 · 29078 阅读 · 0 评论 -
keil调试:局部变量地址和全局变量地址重叠
最近keil中调试STM32程序时,出现的问题是局部变量冲掉了全局变量的数据。 查资料,原因是局部变量定义在栈中,栈在RAM区,由系统自动管理,查看map文件可以看到栈区空间位于在系统计算的实际需要的RAM大小的最后部分(不是RAM区的最后),栈的大小在系统启动文件中默认设置好了,Stack_Size EQU 0x00000400,只有1k,而我在定义局部变量时,搞了个4k的数组原创 2015-11-21 13:10:50 · 7411 阅读 · 1 评论 -
JLink Warning: CPU could not be halted
第二版原理图,芯片STM32F103C8T6,KEIL开发环境,JLINK V8仿真器,VCC/GND/SWD/SWI四线仿真模式,出现的问题是能下载程序也能正常运行,但是不能调试,一旦调试,就会出现下面报错。**JLink Warning: CPU could not be halted***JLink Error: Can not read register 15 (R15) whil原创 2015-11-03 22:00:19 · 36030 阅读 · 5 评论