keil
文章平均质量分 74
wuhuijun165
这个作者很懒,什么都没留下…
展开
-
ucosiii源码注释
ucosiii系统源码注释原创 2022-04-13 10:34:44 · 757 阅读 · 0 评论 -
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 · 576 阅读 · 0 评论 -
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 · 1808 阅读 · 0 评论 -
<转>Keil硬件仿真调试时,看一段程序运行的时间
为了保证在MDK中读取正确的程序运行时间,必须对仿真器的跟踪项进行设置。 以J-Link为例。 在工程的“Options for Target…”目标选项界面中,选择标签“Debug”,进行调试设置界面,选择使用“Cortex-M3JTAG”作为仿真器,然后点击右侧的“Settings”按键,进入J-Link设置界面。 点击标签“Trace”进入跟踪设置界面,将“Core C转载 2016-11-08 20:00:51 · 13449 阅读 · 0 评论 -
sprintf函数应用
sprintf函数应用来自《CSDN 社区电子杂志——C/C++杂志》 E-jL"H* :4RD .l 在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。 1}nrVn[B转载 2015-10-25 09:49:58 · 1568 阅读 · 0 评论 -
keil调试:局部变量地址和全局变量地址重叠
最近keil中调试STM32程序时,出现的问题是局部变量冲掉了全局变量的数据。 查资料,原因是局部变量定义在栈中,栈在RAM区,由系统自动管理,查看map文件可以看到栈区空间位于在系统计算的实际需要的RAM大小的最后部分(不是RAM区的最后),栈的大小在系统启动文件中默认设置好了,Stack_Size EQU 0x00000400,只有1k,而我在定义局部变量时,搞了个4k的数组原创 2015-11-21 13:10:50 · 7517 阅读 · 1 评论 -
JLink Warning: T-bit of XPSR is 0 but should be 1. Changed to 1.
环境:KEIL5,JLINK V8驱动,STM32F103程序,SW下载模式 问题的产生:是在我又装了个JTAG驱动试验了下直接烧写HEX文件,然后又卸载了新装的驱动,随后在KEIL5环境中下载时就烧写不进去了,出现了上面的警告。 解决的办法:将下载速度有2M改为了100K才能正常下载了。 但这个解决方案看来不完美,速度慢了点,不知卸载驱动再重装能否解决,懒惰,不想尝试,将就着这么用着先。原创 2015-10-11 19:43:14 · 18395 阅读 · 1 评论 -
Jlink v8程序下载及错误:Invalid ROM Table!
SW下载,Invalid ROM Table错误解决方案,复位脚电平低于1V原创 2015-06-21 11:57:46 · 3845 阅读 · 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 · 36870 阅读 · 5 评论 -
function "assert_param" declared implicitly || Undifined symbol assert_param__stm32
解决方法很简单,MDK的在工程上点右键,选择options,选择C/C++选项,在defined的框里填上USE_STDPERIPH_DRIVER就可以了。提示function ‘assert_param’ declared implicitly的警告和错误 这个问题原因是由一个宏开关没有打开!这个宏USE_STDPERIPH_DRIVER开关需要打开,就不会有这个告警、错误,Option转载 2015-09-11 15:15:40 · 1690 阅读 · 0 评论 -
一次单片机最小系统的调试
单片机最小系统需要焊接的元器件:单片机STM32F103C8T6+复位电路的电阻和电容。电源是外部接入3.3V,所以此部分也不需要了,晶振采用内部的,此部分电路不需要。调试第一片很顺利,第二片是另一个PCB版本的,JTAG找不到芯片了,搞了半天,还怀疑是自己焊接芯片的烙铁温度太高(390度),焊接时间过长,烫坏了芯片,其实不是。后来发现问题出在两个版本电路图有一点不同,就是VDDA部分多了原创 2015-07-07 19:38:39 · 2613 阅读 · 1 评论