yutian0606
yutian0606

注册于 1 year ago

回答
6
文章
0
关注者
0

希望2021 RT-Thread Studio支持国产MCU,2021年希望RT-Thread越来越牛!!

昨晚我也是在搞 SPI DMA驱动lcd,没用DMA是正常的,用了就不行了,还没找到原因。
用RTT系统的SPI函数发数据效率比直接用HAL库函数发数据低很多。

要想办法判断一下是系统死了,还是某些线程卡死了。

是的,board.h 中关于PWM的介绍不完整

/*-------------------------- PWM CONFIG BEGIN --------------------------*/

/** if you want to use pwm you can use the following instructions.
  *
  * STEP 1, open pwm driver framework support in the RT-Thread Settings file
  * 
  * STEP 2, define macro related to the pwm
  *                 such as     #define BSP_USING_PWM1
  *
  * STEP 3, copy your pwm timer init function from stm32xxxx_hal_msp.c generated by stm32cubemx to the end if board.c file
  *                 such as     void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)  and 
  *                             void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
  * 
  * STEP 4, modify your stm32xxxx_hal_config.h file to support pwm peripherals. define macro related to the peripherals
  *                 such as     #define HAL_TIM_MODULE_ENABLED

问题反馈:
1:在调试DAC功能时借鉴了 STM32F1开发指南(精英版)-HAL库版本_V1.0.pdf PAGE:365页文档,以及对于源码。
2:调试源码如下,但是始终有错误,并且在main 函数调用 DAC_test();报错说函数没有定义,但是头文件,函数声明都是正确的;
经过几个小时的调试都没能找到原因,后面实在没办法就把 DAC相关的代码全部复制到ADC功能的文档末尾(ADC部分是已经调试好的驱动、应用代码文件),再屏蔽DAC相关的.C .H,文档里面的代码。再次编译发现提示 有个函数重复定义,代码如下,然后屏蔽了复制到ADC文件里面的这部分报错代码,再次编译错误消失,烧录到单片机后,DAC功能也正常;
3:再次把 调试成功的DAC部分代码剪切回DAC文件内,编译时依然报错,还是报找不到定义(错误位置是位于main函数的 DAC_test()函数调用 未定义。)。从项目里面删除DAC.c; .h文件,然后编译一次后,再把这两个文件放回原来的文件夹,再次编译,编译时开始报错错误原因是重复定义,屏蔽重复的函数后错误消失,烧录后DAC功能也正常。

总结:编译器 RT-Thread Studio V1.03 存在问题,
1.编译提示错误原因报告的不正确;
2.把原文件的错误问题修正后还是报错,说明编译器还是未能识别真正原因;
3.直到把代码文件删除,再重新加载后的编译才真正报出正确的错误提示;

发布
问题