2023/5/16 15:52:03 在keil软件中使用oled屏幕显示程序运行状态,若没有oled屏该怎么办
时间: 2024-05-03 12:18:51 浏览: 102
《STM32单片机+28BYJ-48步进电机+ULN2003驱动板+OLED屏幕+步进电机角度数据发送到串口调试助手》源代码
5星 · 资源好评率100%
如果没有OLED屏幕,您可以通过串口输出的方式将程序运行状态打印到终端或者串口调试助手中,以便进行调试和查看。您可以使用STM32的串口功能来实现串口输出。以下是一个示例代码:
```c
#include "stm32f1xx_hal.h"
#include <stdio.h>
UART_HandleTypeDef huart1;
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_USART1_UART_Init(void);
void UART_Printf(UART_HandleTypeDef *huart, char *fmt, ...);
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
while (1)
{
// 在这里编写您的程序逻辑
UART_Printf(&huart1, "程序运行状态: %d\r\n", status); // 将状态打印到串口
}
}
void UART_Printf(UART_HandleTypeDef *huart, char *fmt, ...)
{
char buffer[256];
va_list args;
va_start(args, fmt);
vsnprintf(buffer, sizeof(buffer), fmt, args);
va_end(args);
HAL_UART_Transmit(huart, (uint8_t *) buffer, strlen(buffer), HAL_MAX_DELAY);
}
static void MX_USART1_UART_Init(void)
{
huart1.Instance = USART1;
huart1.Init.BaudRate = 115200;
huart1.Init.WordLength = UART_WORDLENGTH_8B;
huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = UART_PARITY_NONE;
huart1.Init.Mode = UART_MODE_TX_RX;
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart1) != HAL_OK)
{
Error_Handler();
}
}
```
在上述代码中,我们使用了STM32的串口1,将程序运行状态通过UART_Printf函数打印到串口1中。UART_Printf函数使用了可变参数列表,可以接收不定数量的参数,并将它们格式化成字符串。在主循环中,您可以编写程序逻辑,并将需要打印的状态通过UART_Printf函数输出到串口中。
阅读全文