czvmkl 发表于 2019-5-1 15:29

无刷驱动从点亮LED灯开始

本帖最后由 czvmkl 于 2019-5-1 15:32 编辑

#include "stm32f10x.h"
void Delay(u32 count);
void RCC_HSE_Config(void);

int main(void)
{ GPIO_InitTypeDefGPIO_InitStructure;
       
// RCC_HSE_Config();//调用自定义系统时钟函数
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE);       //使能PA,PD端口时钟
       
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                               //LED0-->PA.8 端口配置
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;               //IO口速度为50MHz
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                //推挽输出
        GPIO_Init(GPIOA, &GPIO_InitStructure);                                       //根据设定参数初始化GPIOA.8
GPIO_SetBits(GPIOA,GPIO_Pin_8);                                                     //PA.8 输出高

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;                         //LED1-->PD.2 端口配置, 推挽输出
GPIO_Init(GPIOD, &GPIO_InitStructure);                                         //推挽输出 ,IO口速度为50MHz
GPIO_SetBits(GPIOD,GPIO_Pin_2);                                                //PD.2 输出高           
while(1)
        {
          GPIO_ResetBits(GPIOA,GPIO_Pin_8);
          GPIO_SetBits(GPIOD,GPIO_Pin_2);
                Delay(1800000);
                GPIO_SetBits(GPIOA,GPIO_Pin_8);
                GPIO_ResetBits(GPIOD,GPIO_Pin_2);
                Delay(1800000);
        }
}


void Delay(u32 count)
{
u32 i=0;
for(;i<count;i++);
}

void RCC_HSE_Config() //自定义系统时钟函数
{
        RCC_DeInit(); //将外设RCC寄存器重设为缺省值(初始默认值)
        RCC_HSEConfig(RCC_HSE_ON);//设置外部高速晶振(HSE)
       
        if(RCC_WaitForHSEStartUp()==SUCCESS) //等待HSE起振
        {
                RCC_HCLKConfig(RCC_SYSCLK_Div1);//设置AHB时钟(HCLK)
                RCC_PCLK1Config(RCC_HCLK_Div2);//设置低速AHB时钟(PCLK1)
                RCC_PCLK2Config(RCC_HCLK_Div1);//设置高速AHB时钟(PCLK2)
                RCC_PLLConfig(RCC_PLLSource_HSE_Div2,RCC_PLLMul_9);//设置PLL时钟源及倍频系数,系统时钟设成36M
                RCC_PLLCmd(ENABLE); //使能或者失能PLL
                while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);//检查指定的RCC标志位设置与否,PLL就绪
                RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//设置系统时钟(SYSCLK)
                while(RCC_GetSYSCLKSource()!=0x08);//返回用作系统时钟的时钟源,0x08:PLL作为系统时钟
               
        }
}

18201975434 发表于 2019-5-1 16:54

所以你在电机上装了LED?

czvmkl 发表于 2019-6-2 09:55

用stm32做流水灯是没有灵魂的

我师我自己 发表于 2019-6-18 11:01

你是这是什么情况啊!!!!!!

发烧友 发表于 2019-10-14 16:49

会转的LED长的就是好看
页: [1]
查看完整版本: 无刷驱动从点亮LED灯开始