普中STM32-PZ6806L开发板(HAL库函数实现-USART1 printf+scanf/gets)

这篇具有很好参考价值的文章主要介绍了普中STM32-PZ6806L开发板(HAL库函数实现-USART1 printf+scanf/gets)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

实现printf+scanf/gets通过USART1 的发送接收。

电路原理图

板载USB CH340串口电路原理图

普中STM32-PZ6806L开发板(HAL库函数实现-USART1 printf+scanf/gets),普中STM32-PZ6806L,stm32,嵌入式硬件,单片机,普中
主芯片串口引脚图
普中STM32-PZ6806L开发板(HAL库函数实现-USART1 printf+scanf/gets),普中STM32-PZ6806L,stm32,嵌入式硬件,单片机,普中
我的板子板子自带串口坏掉了, 所以使用USB转TTL线, 连接如下
电路原理图
普中STM32-PZ6806L开发板(HAL库函数实现-USART1 printf+scanf/gets),普中STM32-PZ6806L,stm32,嵌入式硬件,单片机,普中
实物图
普中STM32-PZ6806L开发板(HAL库函数实现-USART1 printf+scanf/gets),普中STM32-PZ6806L,stm32,嵌入式硬件,单片机,普中

其他知识

scanf是以空白符(空格、制表符、换行等等)为结束标志的,当遇到空白符是就会结束一次输入,如果你需要读取空格的话可以使用gets或者getchar。

实现步骤

创建项目

参考 普中STM32-PZ6806L开发板(STM32CubeMX创建项目并点亮LED灯)

初始化USART1

普中STM32-PZ6806L开发板(HAL库函数实现-USART1 printf+scanf/gets),普中STM32-PZ6806L,stm32,嵌入式硬件,单片机,普中
其他的保持默认就好

Keil 打开支持MicroLIB支持

不打开无法正常使用printf等标准库
普中STM32-PZ6806L开发板(HAL库函数实现-USART1 printf+scanf/gets),普中STM32-PZ6806L,stm32,嵌入式硬件,单片机,普中

添加用户代码

main.c

#include "stdio.h"
#include "string.h"
// printf 等的底层调用函数, 重定义之后printf将调用此函数进行字符打印
int fputc(int ch, FILE *file)
{
	uint8_t temp[1] = {ch};
	HAL_UART_Transmit(&huart1, temp, 1, 0xffff);
	return HAL_OK;
}

// scanf 等的底层调用函数,  重定义后scanf将调用此函数获取输入数据
int fgetc(FILE *f)
{
    uint8_t ch = 0;
    HAL_UART_Receive(&huart1, &ch, 1, 0xffff);
    return ch;
}

int main()
{
...
	printf("Very Welcome!!!\r\n");
	while (1)
	{
	    memset(buf, 0, sizeof(buf)/sizeof(uint8_t)); // 内存块数据清零
		gets("%s", buf); // 从串口获取数据
		printf("Recv: %s\r\n", buf); // 打印获取到的数据
	}
...
}

共赏

普中STM32-PZ6806L开发板(HAL库函数实现-USART1 printf+scanf/gets),普中STM32-PZ6806L,stm32,嵌入式硬件,单片机,普中

参考

普中STM32-PZ6806L开发板(HAL库函数实现-批量操作GPIO引脚实现跑马灯)文章来源地址https://www.toymoban.com/news/detail-764937.html

到了这里,关于普中STM32-PZ6806L开发板(HAL库函数实现-USART1 printf+scanf/gets)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32】--PZ6860L,STM32F4,ARM3.0开发板

    (1)各种外设和主板原理图 (2)主板供电部分5V和3.3V兼容设计 注意跳线帽 STM32和51的IO对应关系 下载电路 其实启动2次。 一次从系统区启动,一次从用户Flash启动。 第一步:先设置BOOT1和BOOT0从系统区【系统存储器】启动,执行系统中预设的程序 第二步:主机(电脑)通过

    2024年02月07日
    浏览(83)
  • 【STM32+cubemx】0030 HAL库开发:DDS芯片AD9833实现简单的波形发生器

    大家好,我是学电子的小白白,今天带大家了解一款波形发生器芯片——AD9833。 AD9833是AD公司出品的一款DDS波形发生器,能够产生正弦波、三角波和方波输出。 通俗来讲,DDS是一种把波形预先存储在芯片内部的DAC,只要设置好它的工作频率,就能按这个频率来输出特定的波形

    2024年02月02日
    浏览(42)
  • STM32HAL库常用库函数说明

    函数原型: 参数 说明 Delay 延时时间 数据类型:unsigned int 32位 返回值 无返回值 函数原型: 参数 说明 *GPIOx 引脚选泽,参数范围:GPIOA~GPIOC等 GPIO_Pin 引脚编号选择,参数范围:GPIO_PIN_0~GPIO_PIN_15等 PinState 引脚状态设置,参数范围:GPIO_PIN_SET:高电平 GPIO_PIN_RESET:低电平 返回值

    2023年04月08日
    浏览(34)
  • STM32 HAL库函数——HAL_UART_RxCpltCallback()详解

    HAL_UART_RxCpltCallback 是一个回调函数,用于在使用 HAL 库进行串口接收时处理接收完成事件。当使用 HAL_UART_Receive_IT 函数启动串口接收并且接收到指定数量的数据后,HAL 库会自动调用 HAL_UART_RxCpltCallback 函数。 回调函数是一种特殊的函数,它在特定事件发生时由系统或库调用,

    2024年02月13日
    浏览(37)
  • STM32_HAL库串口接收相关函数分析

    串口接收的程序整体分为三个部分:初始化部分,开启中断部分,中断函数部分: 初始化部分: 该部分主要完成相关引脚的初始化,串口的初始化(设置波特率,校验位,字长等),为了逻辑清晰,把初始化相关代码放在本文的最后。 开启中断部分: 调用HAL_UART_Receive_IT函数

    2024年02月16日
    浏览(40)
  • STM32 HAL库的串口中断服务函数详解

    最近在实现利用上位机通过串口发送指令给下位机执行操作的实验,在之前学习串口的过程中我就一直有一个疑惑,那就是为什么在串口中断回调函数内除了要加上自己的操作以外还要在末尾再执行一次 接收中断 ,在查阅了一些资料后我才发现原来和 中断服务函数 有关 我

    2024年02月10日
    浏览(39)
  • STM32cubeIDE HAL库中断服务函数解读

    以stm32f103为例 在开启一个中断后,首先会在stm32f1xx_it.c找到自动生成的中断处理函数,这里是TIM1产生的定时器中断:  这个函数又调用了 stm32f1xx_hal_tim.c 中的 HAL_TIM_IRQHandler(htim1),这个htim1是通用定时器的结构体,其定义为 这个结构体的意义可以参考第25章 STM32F429的TIM定时器

    2024年02月02日
    浏览(66)
  • STM32 HAL库常用函数(早期学习备份版)

    目录 GPIO  读取电平  电平设置 翻转IO口电平 NVIC  中断回调函数  switch选择中断线 定时器中断回调函数 UART中断回调函数 Timers 定时器开关函数 开启定时器及中断 关闭定时器及中断 开启定时器 关闭定时器 PWM开启定时器 PWM关闭定时器 读写定时器相关值的函数 设置比较值 获

    2024年02月21日
    浏览(38)
  • STM32 HAL库函数——HAL_UART_Transmit_IT()详解

    HAL_UART_Transmit_IT 函数的用法如下: 输入参数: huart :指向UART句柄结构体的指针,用于指定要使用的UART外设。 pData :指向要发送数据缓冲区的指针,可以是 uint8_t 类型或 uint16_t 类型的数据。 Size :要发送的数据大小,以数据元素( uint8_t 或 uint16_t )的数量表示。 返回值:

    2024年02月08日
    浏览(36)
  • STM32 HAL库 中断处理中使用延时函数(HAL_Delay)

    今天在学习STM32 HAL库外部中断,使用的是按键触发外部中断,想在外部中断里面写一个按键消抖,也就是在HAL库外部中断处理函数中使用了HAL_Delay() 函数,后来经过实验,在外部中断处理函数(void EXTI1_IRQHandler(void))和中断回调函数(void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin))里面都

    2024年03月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包