其实不一定是程序跑偏,单片机在运行程序的时候会跳来跳去,比如executor 程序,son 程序返回中断程序。程序 keil编译时没有报错,只要语法正确就可以通过,有经验的程序员会遇到意想不到的问题,如果有问题,他们只能反复检查程序。
1、单片机跑飞的原因有哪些?硬件的、软件的、以及怎样防止这种事情的发生...单片机跑偏的原因有很多,包括硬件和软件:1。硬件原因:可能造成电源不稳定、纹波大、浪涌多;电磁干扰过大也容易造成;强弱电缆混在一起很容易造成等待。2.软件原因:压叠和退叠不均匀;主机程序没有循环等待。一般是程序,逻辑原因是电源或者其他干扰造成的。为避免飞走,需要通过熔丝位或看门狗及时复位。
单片机程序的工作原理是通过设置寄存器状态来控制单片机内部各引脚和端口的逻辑状态,从而实现预期的逻辑功能。所有这些功能都是通过逻辑单元的01电平来实现的。这些逻辑可能受到外部电磁干扰或内部逻辑结构问题的干扰,形成不可控的逻辑状态。这就是单片机意想不到的状态,也就是我们所说的单片机“飞走”。
2、请问软件上什么因素会导致单片机跑飞?忽略硬件因素。其实不一定程序失控的微控制器在运行程序本身会被跳过,比如执行sub 程序,在sub 程序返回,中断。程序无法正常工作。由于多种因素的影响,程序在Keil编译上没有错误。只要语法正确,就可以通过程序所经历的难以想象的问题反复观看节目。如果指针不是乱用的话,一般程序只会停留在一个地方,跳不出来!
指针未初始化。其实不一定是程序跑偏,单片机在运行程序的时候会跳来跳去,比如executor 程序,son 程序返回中断程序。程序 keil编译时没有报错。只要语法正确就可以通过,有经验的程序员会遇到意想不到的问题。如果有问题,他们只能反复检查程序。
3、niosiiucgui 程序跑飞提问最好详细一点,否则只能泛泛而答,缺乏针对性。如果你认为程序在你的niosii部分的处理没有问题,那么niosii 程序的失控很可能是fpga中缺少fmax造成的。有几个建议:降低niosii的时钟频率;增加关键信号的时间约束,比如内存的总线。如果失控现象不频繁,可以加一个看门狗,让系统自动回复。
4、 程序跑飞了如果你真的是电源有问题,你用了你的电路程序刚好飞回电池,说明你自己做的电源电路有问题。总的来说,这种情况是好的,因为模拟器不需要太多的电源,电压符合要求,但是你要检查你的输出电流,计算功率是过大还是过小,然后你的电源纹波系数是否足够稳定。如果电源跳得大,可能会造成飞,建议你检查一下你的单片机电路,比如你的复位线能不能正常工作。感觉程序 Paofei跟你的程序电路关系比较大,跟电源关系比较小。
文章TAG:程序 stm32 程序经常跑飞