我没有得到下面代码的输出
下面是我的 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 接口和 Sys
tick。*/
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();
>