Я бы хотел добавить поддержку ШИМ в конфигурацию моей платы NUTX.
Я использую микроконтроллер STM32F765VGT6.
Я начал реализовывать это как в каталоге конфигурации STM32F4Discovery:
- добавить
stm32_pwm_setup()
в configs/<board_name>/src/<board_name>.h
- добавить
configs/<board_name>/src/stm32_pwm.c
:
#include <nuttx/config.h>
#include <errno.h>
#include <debug.h>
#include <nuttx/board.h>
#include <nuttx/drivers/pwm.h>
#include <arch/board/board.h>
#include "chip.h"
#include "up_arch.h"
#include "stm32_pwm.h"
#include "board_name.h"
#ifdef CONFIG_PWM
int stm32_pwm_setup(void) {
static bool initialized = false;
struct pwm_lowerhalf_s *pwm;
int ret;
/* Have we already initialized? */
if (!initialized) {
#if defined(CONFIG_STM32F7_TIM1_PWM)
#if defined(CONFIG_STM32F7_TIM1_CH1OUT)
pwm = stm32_pwminitialize(1);
if (!pwm) {
aerr("ERROR: Failed to get the STM32F7 PWM lower half\n");
return -ENODEV;
}
ret = pwm_register(DEV_PWM3, pwm);
if (ret < 0) {
aerr("ERROR: pwm_register failed: %d\n", ret);
return ret;
}
#endif
/* ... */
/* other timers and channels */
/* ... */
initialized = true;
}
return OK;
}
#endif /* CONFIG_PWM */
- добавление
stm32_pwm.c
в Makefile (configs/<board_name>/src/Makefile
)
Однако я всегда получаю ошибку компиляции, что "stm32_pwm.h" не был найден.
Кроме того, я не могу позвонить stm32_pwm_initialize()
в моем configs/<board_name>/src/stm32_boot.c
.
Кто-то уже реализовал поддержку NuttX PWM на STM32F7 или может дать мне подсказку, почему я терплю неудачу?