stm32f407与陶晶驰串口屏的简易通信 / 串口收发(hal库)

一、开发环境

硬件:STM32F407 核心开发板

单片机:STM32F407VET6

Keil版本:5.32

STM32CubeMX版本:6.11.0

 二、配置STM32CubeMX

1. 选择时钟源

2. 配置时钟

​3. 使能Debug功能:Serial Wire

4. HAL库时基选择:SysTick

5. USART1配置:选择异步模式。

6. 配置工程参数:在Project标签页中,配置项目名称和位置,选择工具链MDK-ARM。

7. 生成代码:在Code Generator标签页中,配置工程外设文件与HAL库,勾选头文件.c和.h文件分开,然后点击Project > Generate Code生成代码。

三、代码实现与部署

1. main.c增加代码:添加printf的头文件 #include "stdio.h",定义变量RxBuffer和RxFlag,然后按照陶晶驰串口屏的通信协议发送即可,例子如下。

添加串口接收的中断函数,即可实现串口接收。

#include "stdio.h"


uint8_t RxBuffer;    //接收缓冲区
uint16_t RxFlag = 0;    //接收完成标志;0表示接受未完成,1表示接收完成


printf("page0.t2.txt=\"三角波\"\xFF\xFF\xFF");
printf("page0.n0.val=%d\xFF\xFF\xFF", Fre);


  /* USER CODE BEGIN 3 */
	if(RxFlag == 1)  
	{
		RxFlag = 0;
	}
  /* USER CODE END 3 */


/* USER CODE BEGIN 4 */
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)  
{
	
	if(huart->Instance == USART1)   //判断发生接收中断的串口
	{
		RxFlag = 1;   //置为接收完成标志
	}
	HAL_UART_Receive_IT(&huart1, (uint8_t *)&RxBuffer, 2);
}
/* USER CODE END 4 */

2. usart.c增加代码:添加头文件#include "stdio.h"。在末尾用户代码区增加如下代码。

#include "stdio.h"


/* USER CODE BEGIN 1 */
struct __FILE
{
    int a;
};
FILE __stdout;

int fputc(int ch, FILE *f)
{
	HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, 0xffff);    //HAL库串口发送函数
	return ch;
}

int fgetc(FILE *f)
{
  uint8_t ch = 0;
  HAL_UART_Receive(&huart1, &ch, 1, 0xffff);    //HAL库串口接收函数
  return ch;
}
/* USER CODE END 1 */
 参考:利用STM32 HAL库实现USART串口通信,并通过printf重定向输出“Hello World“_hal库printf-CSDN博客
陶晶驰串口屏幅频特性曲线绘制/STM32F407与串口屏通信_micropython uart串口屏-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值