首页->【STM32最强F7探索大冒险】

184 0

 

根据课题计划,本次初次调试分为四个步骤:

1.      stm32f767板子的调试工作(驱动安装)

2.     串口的调试(由于课题需要设计上位机,需要进行自行设计串口界面,这里就进行了串口调试)

3.     PWM产生

4.     uC/OS II的移植

 

这次针对完成的第一步进行分享:

 stm32f767板子的调试工作(驱动安装)

以往的研究都是在师兄的基础上,所以从零开始搞,被一个驱动的安装搞得昏头转向,所以每次学习时,还是把自己当成一个小学生来看,学习起来反而比较快。

从网上下载了正点原子的资料包,找到了ST-LINK官方驱动,很容易的解决问题。

ST-LINK官方驱动.zip

打开解压包,如下图:

 image.png

 根据个人的PC机系统安装驱动(本人是win7升级win10系统,安装的事dpinst_x86.exe)。

安装成功后,如下图,完成即可。

image.png

在设备管理器中可以看到如下图所示:

image.png

驱动安装完成。

 

下面借助正点原子资料包,完成了对STM32F767 Nucleo初次调试的流水灯实验。

 image.png


 image.png

根据电路图可知,控制LED1/2/3的GPIO分别是PB0、PB7、PB14。

    //配置
    GPIO_Initure.Pin=GPIO_PIN_0|GPIO_PIN_7|GPIO_PIN_14;//PB0,7,14
    GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;  //
推挽输出
    GPIO_Initure.Pull=GPIO_PULLUP;          //
上拉
    GPIO_Initure.Speed=GPIO_SPEED_HIGH;     //
高速
    HAL_GPIO_Init(GPIOB,&GPIO_Initure);     //
初始化
   
    //0.5s
        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_RESET); //LED3

        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_RESET);   //LED2

        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);   //LED1

        delay_ms(500);          //ÑÓʱ500ms
        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);   //LED1

        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_RESET);   //LED3

        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET); //LED2

        delay_ms(500);                                      //500ms
     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_RESET);   //LED2

     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_SET);   //LED3

     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET); //LED

     delay_ms(500);                                      //500ms
     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);   //LED1

     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_RESET);   //LED3

     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET); //LED2

     delay_ms(500);                                      //500ms
     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_RESET); //LED3

     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_RESET);   //LED2

     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);   //LED1

     delay_ms(500);          //500ms
  
   //0.1s
     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_RESET); //LED3

     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_RESET);   //LED2

     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);   //LED1

     delay_ms(100);          //100ms
        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);   //LED1

     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_RESET);   //LED3

     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET); //LED2

     delay_ms(100);                                      //100ms
     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_RESET);   //LED2

     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_SET);   //LED3

     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET); //LED

     delay_ms(100);                                      //100ms
     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);   //LED1

     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_RESET);   //LED3

     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET); //LED2

     delay_ms(100);                                      //100ms
     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_RESET); //LED3

     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_RESET);   //LED2

     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);   //LED1

     delay_ms(100);          //100ms
   
    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_SET); //LED3

    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET);   //LED2

    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);   //LED1

    delay_ms(500);

 

 

现在完成了第一步的工作。

在这里要感谢一下电子技术应用提供的STM32F7开发板最强F7和正点原子开放的STM32F7资料包,以及小组其他成员的分享,都给了我很大的帮助。

楼主可见