ST意法半导体
直播中

贾大林

8年用户 1403经验值
私信 关注
[问答]

如何使用STM32F205的简单应用程序?

我没有得到下面代码的输出
下面是我的 main.c UART.c 和 UART.h 文件
主程序
{
/* 用户代码开始 1 */
uint8_t buf []= "列出可用的nr"
               “ 1. LED 红灯亮起nr”
                 “ 2. LED 绿色亮起nr”;
uint8_t buf1 [20]={0};
uint8_t我=0;
/* 用户代码结束 1 */
/* 单片机配置-------------------------------------------- ----------*/
/* 重置所有外设,初始化 Flash 接口和 Systick。*/
HAL_Init();
/* 用户代码开始初始化 */
/* 用户代码结束初始化 */
/* 配置系统时钟 */
SystemClock_Config();
/* 用户代码开始 SysInit */
/* 用户代码结束 SysInit */
/* 初始化所有配置的外设 */
MX_GPIO_Init();
MX_USART3_UART_Init();
/* 用户代码开始 2 */
HAL_UART_Transmit(&huart3,buf,sizeof(buf),100);
/* 用户代码结束 2 */
/* 无限循环 */
/* 用户代码开始时 */
而 (1)
{
    HAL_UART_Receive(&huart3,buf1,sizeof(buf1),1000);
   UART_read1(buf1);
   /* 用户代码结束 */
   /* 用户代码开始 3 */
}
/* 用户代码结束 3 */
}>
串口
< #include “uartcheck.h”
#include "string.h"
#include "STM32f2xx_hal_uart.h"
uint8_t 缓冲器 1 [20];
uint8_t buffer_index1=0;
uint8_t _uart_flag;
uint8_t buffer2[20]="无效输入";
uint8_t REDLED[15]=“LED 红灯亮起”;
uint8_t GREENLED[15]=“LED 绿色亮起”;
uint8_t tempbuf[15];
uint8_tj=0;
void UART_read1(uint8_t *buff1)
{
buffer1[buffer_index1]= *buff1;
tempbuf[j]=buffer1[buffer_index1];
  如果(j==15)
{
    UART_buffer_check();
    j=0;
}
j++;
buffer_index1++;
}
void UART_buffer_check()
{
      如果 (memcmp(tempbuf,REDLED,15)==0)
      {
      HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_SET);
      buffer_index1=0;
      }
      如果 (memcmp(tempbuf,REDLED,15)==0)
      {
      HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);
      buffer_index1=0;
      }
   }>
串口.h
< #include "main.h"
#include "stm32f2xx_hal.h"
extern void UART_read1(uint8_t *buff1);
外部无效 UART_bufcheck();
>




回帖(1)

张曼曼

2023-1-12 11:45:28
增加接收功能的时间会有帮助吗?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分