你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
小批量生产的产品出现如题的现象,之前是偶尔出现的,前段时间,增加了部分功能,程序增大了,就一直出现了。逐步追踪,定位在一条if语句上,把浮点运算修改为整型运算后解决问题,就是好奇问一下是不是单片机的bug,这个问题是可以复现的,可以私下提供工程文件
举报
应该不是单片机的bug,浮点运算应该是不会引起这个问题的。F4系列有硬件浮点,如果开启需要修改.S文件。030这个系列是软件浮点,理论是不会发升异常。
可以考虑是不是浮点运算是数据溢出后导致的问题。在线仿真,在进入if前,先查看GPIO寄存器和要判断的数据内容。运行if后,再看寄存器的状态。是不是有用指针的地方,看看指针指向的地址是不是和PB输出寄存器相同。
废鱼 发表于 2022-1-22 14:00 应该不是单片机的bug,浮点运算应该是不会引起这个问题的。F4系列有硬件浮点,如果开启需要修改.S文件 ...
[md]谢谢回答。现在用的MDK版本不支持stm32f030系列的仿真,暂时还不能确定是不是溢出导致的,就是修改成整数运算就没有出现了。
不会是栈空间开得不够吧?一旦溢出,可能会出一些怪现象。
xiaoxiaowa 发表于 2022-1-26 20:35 不会是栈空间开得不够吧?一旦溢出,可能会出一些怪现象。
我遇到过类似现象,好像是程序太大了,但编译没有提示,简化或不用浮点就好了。
STM32F030内部晶振怎么设置,内部晶振是延时函数怎么设置
分享STM32F030K6程序运行异常的解决方法
STM32F030正常上电不运行
DMA 读取GPIO的状态
stm32的同一个定时器,不同的通道,可以不同时的输出pwm波形吗
基于STM32的锂动力电池检测装置的设计
STM32的低功耗模式
STM32的上电启动过程
STM32中如何实现数据加密
STM32的I2S外设
应该不是单片机的bug,浮点运算应该是不会引起这个问题的。F4系列有硬件浮点,如果开启需要修改.S文件。030这个系列是软件浮点,理论是不会发升异常。
可以考虑是不是浮点运算是数据溢出后导致的问题。在线仿真,在进入if前,先查看GPIO寄存器和要判断的数据内容。运行if后,再看寄存器的状态。是不是有用指针的地方,看看指针指向的地址是不是和PB输出寄存器相同。
对于STM32而言,还要选择 小端模式 的DSP库,以KEIL MDK为例,此时需选择 arm_cortexM0l_math.lib 。另外,这样有篇
相关应用分享,你可以参考下。关于STM32浮点运算单元FPU的小话题 (qq.com)
[md]谢谢回答。现在用的MDK版本不支持stm32f030系列的仿真,暂时还不能确定是不是溢出导致的,就是修改成整数运算就没有出现了。
不会是栈空间开得不够吧?一旦溢出,可能会出一些怪现象。
我遇到过类似现象,好像是程序太大了,但编译没有提示,简化或不用浮点就好了。