W806做电机转速调控

手上有个电机调速的需求,打算用联盛德的W806做,边做边写吧。

如果没做出来,那我就把这篇删掉。

板子昨天到了。由于没有固件函数库,只能看着GPIO库和官方的demo边试边学。这里改了一个流水灯,后面试试PWM调试。

#include <stdio.h>
#include "wm_hal.h"
#include "wm_gpio.h"

void Error_Handler(void);

static void GPIO_Init(void);
static volatile uint8_t key_flag = 1;

int main(void)
{
	SystemClock_Config(CPU_CLK_160M);
	printf("enter main\r\n");
	HAL_Init();
	GPIO_Init();
	
	while (1)
	{
		
			HAL_Delay(200);
		    HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0 );
			
			HAL_Delay(200);
		    HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_1 );
			
			HAL_Delay(200);
		    HAL_GPIO_TogglePin(GPIOB,  GPIO_PIN_2);

	}
	
    return 0;
}

void Error_Handler(void)
{
	while (1)
	{
	}
}

void assert_failed(uint8_t *file, uint32_t line)
{
	printf("Wrong parameters value: file %s on line %d\r\n", file, line);
}

static void GPIO_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStruct = {0};
	
	__HAL_RCC_GPIO_CLK_ENABLE();

	GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2;
	GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT;
	GPIO_InitStruct.Pull = GPIO_NOPULL;
	HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2, GPIO_PIN_SET);
	
	GPIO_InitStruct.Pin = GPIO_PIN_5;
	GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
	GPIO_InitStruct.Pull = GPIO_PULLUP;
	HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
	
	HAL_NVIC_SetPriority(GPIOB_IRQn, 0);
	HAL_NVIC_EnableIRQ(GPIOB_IRQn);

}

 反正现在越看越觉得C怎么这么难?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值