当前位置: 首页 > news >正文

【Mini-F5265-OB开发板试用测评】1、串口printf输出

测试串口printf输出。

一、硬件电路部分

开发板自带仿真器上有虚拟串口,插上USB仿真器可以找到串口设备号。
在这里插入图片描述

仿真器串口连接到MM32F5265芯片的PC10和PC11引脚(UART3功能)。

二、串口3功能

看手册串口3引脚的功能映射图
在这里插入图片描述

串口3映射到AF7,需要在程序中配置到此映射。

三、程序部分

3.1、usart.c

#include "main.h"void init_usart(uint32_t Baudrate)
{GPIO_InitTypeDef GPIO_InitStruct;UART_InitTypeDef UART_InitStruct;RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART3, ENABLE);UART_StructInit(&UART_InitStruct);UART_InitStruct.BaudRate      = Baudrate;UART_InitStruct.WordLength    = UART_WordLength_8b;UART_InitStruct.StopBits      = UART_StopBits_1;UART_InitStruct.Parity        = UART_Parity_No;UART_InitStruct.HWFlowControl = UART_HWFlowControl_None;UART_InitStruct.Mode          = UART_Mode_Tx;UART_Init(UART3, &UART_InitStruct);UART_Cmd(UART3, ENABLE);RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);GPIO_PinAFConfig(GPIOC, GPIO_PinSource10, GPIO_AF_7);GPIO_PinAFConfig(GPIOC, GPIO_PinSource11, GPIO_AF_7);GPIO_StructInit(&GPIO_InitStruct);GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_10;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_High;GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_AF_PP;GPIO_Init(GPIOC, &GPIO_InitStruct);GPIO_StructInit(&GPIO_InitStruct);GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_11;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_High;GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_AF_PP;GPIO_Init(GPIOC, &GPIO_InitStruct);
}#if   defined (__ICCARM__)#if   (__VER__ >= 9030001)/* Files include */
#include <stddef.h>
#include <LowLevelIOInterface.h>/************************************************************************************************************************ @brief  redefine __write function* @note   for printf* @param  handle* @param  *buf* @param  bufSize* @retval nChars*********************************************************************************************************************/
size_t __write(int handle, const unsigned char *buf, size_t bufSize)
{size_t nChars = 0;/* Check for the command to flush all handles */if (-1 == handle){return (0);}/* Check for stdout and stderr (only necessary if FILE descriptors are enabled.) */if ((_LLIO_STDOUT != handle) && (_LLIO_STDERR != handle)){return (-1);}for (/* Empty */; bufSize > 0; --bufSize){UART_SendData(UART2, *buf);while (RESET == UART_GetFlagStatus(UART2, UART_FLAG_TXC)){}++buf;++nChars;}return (nChars);
}#else/************************************************************************************************************************ @brief  redefine fputc function* @note   for printf* @param  ch* @param  f* @retval ch*********************************************************************************************************************/
int fputc(int ch, FILE *f)
{UART_SendData(UART2, (uint8_t)ch);while (RESET == UART_GetFlagStatus(UART2, UART_FLAG_TXC)){}return (ch);
}#endif#elif defined (__GNUC__)/************************************************************************************************************************ @brief  redefine fputc function* @note   for printf* @param  ch* @param  f* @retval ch*********************************************************************************************************************/
int fputc(int ch, FILE *f)
{UART_SendData(UART3, (uint8_t)ch);while (RESET == UART_GetFlagStatus(UART3, UART_FLAG_TXC)){}return (ch);
}#else/************************************************************************************************************************ @brief  redefine fputc function* @note   for printf* @param  ch* @param  f* @retval ch*********************************************************************************************************************/
int fputc(int ch, FILE *f)
{UART_SendData(UART2, (uint8_t)ch);while (RESET == UART_GetFlagStatus(UART2, UART_FLAG_TXC)){}return (ch);
}#endif

3.2、main.c

#include "main.h"int main(void)
{SysTick_Init();init_usart(115200);init_led();while (1){led1_tog();led2_tog();SysTick_Delay_ms(100);printf("mm32F5265_ob_printf_test!\r\n");}
}

四、运行结果

下载程序后,串口输出内容:
在这里插入图片描述

相关文章:

  • TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
  • 椭圆曲线密码学(ECC)
  • 6.计算机网络核心知识点精要手册
  • Unity3D SM节点式动画技能编辑器实现
  • 2.8 C/C++开发环境:VSCode+CMake+VS2017
  • STM32简易示波器/逻辑分析仪设计指南
  • 02-性能方案设计
  • C++算法训练营 Day13二叉树专题(1)
  • 力扣-20.有效的括号
  • STM32标准库-ADC数模转换器
  • 基于ffmpeg+sdl的audio player
  • 模型重展UV后绘制纹理
  • [Java 基础]String 类
  • Java NIO详解:新手完全指南
  • 【技巧】dify前端源代码修改第一弹-增加tab页
  • python打卡day49@浙大疏锦行
  • 逻辑回归暴力训练预测金融欺诈
  • 电路图识图基础知识-远程/本地启停电动机(二十一)
  • 记录一篇HTTPS的文章
  • 如何让hustoj支持Java判题
  • 公司简介网站怎么做/站长工具的使用seo综合查询排名
  • 惠州网站建设制作公司/站长查询
  • 网站开发市场分析/合肥百度关键词推广
  • 北京好用的h5建站/app拉新推广平台渠道商
  • mac page转换wordpress/windows优化大师官方网站
  • 拓者设计吧电脑版/seo网页优化平台