-
那就罗嗦几句。
如果使用了HEAP,则必须设置HEAP大小。
如果是STACK,可以设置为0,不影响程序运行。
IAR STM8定义STACK,是预先在RAM尾端分配一个字节的区域作为堆栈预留区域。
当程序静态变量,全局变量,或者堆与预留堆栈区域有冲突,编译器连接的时候就会报错。
你可以吧STACK设置为0,并不影响运行。(会影响调试,调试会报堆栈溢出警告)。
其实没必要这么做。
一般程序,(在允许范围内)设置多少STACK,并不影响程序真实使用的RAM大小,
(可以试验,把STACK设置多少,编译出来的HEX文件都是一样),
程序还是按照它原本的状态使用RAM,把STACK设置为0,并不是真实地减少RAM使用。
仅仅是欺骗一下编译器,让程序表面上看起来少用了RAM。
而设置一定size的STACK,也并不是真的就多使用了RAM,只是让编译器帮你
检查一下,是否能够保证有size大小的RAM没有被占用,可以用来作为堆栈。
以上仅针对IAR STM8.
-
如果TIM_OUT 有PWM输出,他的互补引脚输出也应该有的, 100多K的频率,我还没有试过,不过30K的频率,我是试过两路输出都有波形输出的。
-
版主说的也很有道理,无从查起
-
貌似是 08001954
-
如果你的板子已经自行供电,而Jlink还不认的话,只能说明Jlink没处理好。
-
还有个莫名其妙的事,更是神奇,同样这一批pcb
有3块J-Link无法识别处理器,Jtag口很简单的,我用万用表挨个量过,没有断线或短路,stm所有电源引脚电压都正常。可就是连不上。
开始怀疑stm32坏了,可换了个新的还是不行,说明不是stm32的问题,可还是连不上,唉
-
“芯片的电源不接+3.3V,给JTAG口供3.3V电源,然后用ST-Linker连接(刚焊的板子),可是没有连上,然后量电源和地就短路了!!”
出现这种情况,你可以将芯片一个一个卸下来,卸一个测量一下是否还短路,直到找到是哪个芯片短路。
-
这两天也在学习DMA的事情,如果有一个这样的应用:
从串口1读取数据,再从串口2送出,使用DMA方式的话,岂不是效率更低了?
-
-
查STM32 Reference manual,Temperature sensor/VREFINT internal channelsThe Temperature sensor is connected to channel ADCx_IN16 and the internal reference voltage VREFINT is connected to ADCx_IN17. These two internal channels can be selected and converted as injected or regular channels.这个Vrefint 可以用来做这个事
-
-
F2812等各种芯片的PCB图在TI网上都可以找到的。只是需要注册才能下。
-
准备学习STM32,不知需要准备点什么资料和做什么热身运动....谢谢各位指教!!!!!!!
-
谢谢!
-
在 LPM3 状态下进入中断服务程序后,如果没有 LPM3_EXIT,那么中断服务程序执行完毕退出后,CPU 会再次自动进入 LPM3 状态(停滞不前)。
如果在中断服务程序返回之前,执行过 LPM3_EXIT 语句,则中断返回后,会恢复执行被中断的程序。