标题: 请问,如何用stm32通过串口调试助手控制灯的亮灭? [打印本页]

作者: stm32learning    时间: 2018-11-28 15:54
标题: 请问,如何用stm32通过串口调试助手控制灯的亮灭?
大家有没有源码可以分享
作者: 小猫猫爱吃鱼    时间: 2018-11-28 16:54

你好!
1、用的STM32的那款芯片?
2、分步完成程序和调试
   a、写程序,先能点亮 led 灯
   b、接着写程序,能用程序控制灯的亮灭
   c、再写串口程序,能正常接收串口数据
   d、增加串口控制指令,实现串口控制灯的亮灭
3、如有疑问,可以加我QQ好友,帮你完成设计

作者: yousunny    时间: 2018-11-29 09:07
用正点原子的历程,直接可以使用。具体你去官方论坛看下(开源电子网)(不做伸手党)
作者: alanqnb    时间: 2018-12-1 14:41
1.串口配置;2.串口中断接收;3.通过串口数据判断是否点亮led
作者: cyc0228    时间: 2018-12-1 16:29
#include "main.h"
#include "stm32f0xx_hal.h"

/* USER CODE BEGIN Includes */
#include "lcd.h"
/* USER CODE END Includes */

/* Private variables ---------------------------------------------------------*/
UART_HandleTypeDef huart1;

/* USER CODE BEGIN PV */
/* Private variables ---------------------------------------------------------*/

/* USER CODE END PV */

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_USART1_UART_Init(void);

/* USER CODE BEGIN PFP */
/* Private function prototypes -----------------------------------------------*/

/* USER CODE END PFP */

/* USER CODE BEGIN 0 */

/* USER CODE END 0 */

/**
  * @brief  The application entry point.
  *
  * @retval None
  */
int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */
        Lcd_Init();
        Lcd_Clear(WHITE);
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
        Gui_DrawFont_GBK16(0, 0, BLACK, WHITE, "LED1 OFF");
        Gui_DrawFont_GBK16(0, 25, BLACK, WHITE, "LED2 OFF");
        Gui_DrawFont_GBK16(0, 50, BLACK, WHITE, "LED3 OFF");
        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_SET);
  while (1)
  {

  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
               
               
                uint8_t data = 0;  
                HAL_UART_Receive_IT(&huart1, &data, 1);  
                if(data == '1')  
                {  
                        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);  
                        HAL_UART_Transmit(&huart1, &data, 1, 0);  
                        Gui_DrawFont_GBK16(0, 0, BLACK, WHITE, "LED1  ON");
                        //HAL_Delay(500);
                }  
                else if(data == '2')  
                {  
                        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);  
                        HAL_UART_Transmit(&huart1, &data, 1, 0);  
                        Gui_DrawFont_GBK16(0, 0, BLACK, WHITE, "LED1 OFF");
                        //HAL_Delay(500);
                }
                else if(data == '3')  
                {  
                        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);  
                        HAL_UART_Transmit(&huart1, &data, 1, 0);  
                        Gui_DrawFont_GBK16(0, 25, BLACK, WHITE, "LED2  ON");
                        //HAL_Delay(500);
                }
                else if(data == '4')  
                {  
                        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);  
                        HAL_UART_Transmit(&huart1, &data, 1, 0);  
                        Gui_DrawFont_GBK16(0, 25, BLACK, WHITE, "LED2 OFF");
                        //HAL_Delay(500);
                }
                else if(data == '5')  
                {  
                        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET);  
                        HAL_UART_Transmit(&huart1, &data, 1, 0);  
                        Gui_DrawFont_GBK16(0, 50, BLACK, WHITE, "LED3  ON");
                        //HAL_Delay(500);
                }
                else if(data == '6')  
                {  
                        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_SET);  
                        HAL_UART_Transmit(&huart1, &data, 1, 0);  
                        Gui_DrawFont_GBK16(0, 50, BLACK, WHITE, "LED3 OFF");
                        //HAL_Delay(500);
                }
  }
  /* USER CODE END 3 */

}
---------------------
作者:乌云的暮年下着雪
来源:CSDN
原文:https://blog.csdn.net/qq_40390825/article/details/80994900
版权声明:本文为博主原创文章,转载请附上博文链接!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1