工控维修记录
fancyang
这个作者很懒,什么都没留下…
展开
-
关于CM4内核的单片机使用sprintf格式化浮点数导致程序跑飞的问题
1.首先怀疑是硬件FPU配置的问题,MDK默认打开了FPU,然而CM4的FPU打开后,是不能直接用sprintf处理浮点数的,据说是开辟的堆栈空间没有8字节对齐。基于freeRTOS和Contex-M4内核的单片机,在使用sprintf格式化浮点数时,由于打开了看门狗复位,导致程序频繁重启,不开看门狗复位,程序就会卡死。而同样的程序在切换到Contex-M3内核的单片机时,就能正常运行。由于我的程序不需要大量高精度的浮点数运算,我在使用CM4的单片机时,不需要打开FPU。原创 2024-07-09 10:47:13 · 1277 阅读 · 0 评论 -
关于APM32F407配置串口DMA收发没有数据的问题记录
这一句用的是直接赋值操作,而不是我们熟悉的按位或,这样当配置了USART_EnableDMA(USART->usart, USART_DMA_RX)后,原来的USART_EnableDMA(USART->usart, USART_DMA_TX); 整活了一套APM32F407的板子,用了APM32F4xx_SDK_V1.4的标准外设库,正在搭建移植底层BSP框架串口部分,BSP底层配置逻辑是从STM32F407移植过来的。 串口DMA接收和中断接收都没有问题,发送中断也没有问题。原创 2024-05-29 17:00:12 · 460 阅读 · 0 评论