STM32CubeMX配置-串口配置(RCC,Manager配置)_cubemx 配置串口-程序员宅基地

技术标签: stm32  嵌入式硬件  MCU  单片机  

1.配置时钟

RCC时钟树如下:

    根据电路需求,如果选择外部时钟需要配置STM32CubeMX的RCC为HSE LSE,如果内部时钟,时钟树配置为HSI LSI,选择内部时钟如下:

2.配置DEBUG

烧录方式配置为SWD方式,需配置如下:

3.配置串口

配置为异步模式,参数设置,勾选NVIC优先级分组,如下:

4.工程配置 Project Manager

5.生成代码

生成代码默认不开中断,初始化时需打开中断,程序才会进入中断函数。

int main(void)
{
  /* USER CODE BEGIN 1 */
 
  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */
  
  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART2_UART_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

串口回调函数调用:

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
	if(huart->Instance == USART1)				
	{		
		if(HAL_UART_Receive_IT(&huart1,(uint8_t*)&rx, sizeof(rx)) == HAL_OK)
		{
			InterverDataHandle.g_su8RxBuf[InterverDataHandle.g_su8RxCnt] = rx;
			InterverDataHandle.g_su8RxCnt++;
			if(InterverDataHandle.g_su8RxCnt >= PS_MODULES_RX_LEN)
			{
				InterverDataHandle.g_su8RxCnt = 0;
			}
			InterverDataHandle.g_sbUartItFlag = 1;
		}	
	}
}

printf重定向

      c语言中printf函数默认输出设备是显示器,如果实现在串口或者LCD上显示,必须重定义标准库函数里面调用的输出设备定义的相关函数。

如果printf输出到串口,需要将fputc里面的输出指向串口,这一过程称为重定向。

printf函数位于标准库中,基于嵌入式的printf同样位于MicroLIB中,在嵌入式系统中使用printf函数,需要添加MicroLIB。

#include <stdio.h>

int fputc(int ch,FILE *f)
{
	HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1,0xFF);
	return ch;
}

注意闭坑:

        如果要调用中断函数,初始化时需打开中断。

        调用printf函数时,需勾选MicroLIB库。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/li_654/article/details/132945917

智能推荐

2013年计算机技术与软件专业技术资格(水平)考试安排_2013年全国软件考试-程序员宅基地

文章浏览阅读653次。根据全国计算机专业技术资格考试办公室的文件通知,全国计算机技术与软件专业技术资格(水平)考试2013年的考试安排如下。 如有变化,另文通知。考试时间安排(以准考证为准):2013年上半年计算机专业技术资格考试工作安排考试日期: 2013年5月25日、26日级别资格名称 考试时间考试科目高级信息系统项目管理师上午9_2013年全国软件考试

2022全年度休闲食品(零食)十大热门品牌销量榜单_徐福记2023年在淘宝销量是多少?-程序员宅基地

文章浏览阅读1.4k次。根据鲸参谋平台数据统计,2022年京东平台休闲食品的年度总销量超6亿件,同比去年增长6.5%;此外,京东平台休闲食品今年的年度销额累计超208亿元,但同比去年则减少了4.1%。_徐福记2023年在淘宝销量是多少?

[Linux C] 简易web服务器实现_linux webservice实现代码-程序员宅基地

文章浏览阅读352次。用C语言编写的简易web server,HTTP/1.1,运行环境:Ubuntu 18.04。_linux webservice实现代码

【详细文档】基于Qt的跨平台局域网聊天室和群聊文件发送,并使用 Qtest、CI/CD 完成自动测试及自动打包发布_qt局域网聊天系统-程序员宅基地

文章浏览阅读971次,点赞5次,收藏16次。通过 Qt 实现了跨平台的群聊、文件传输功能。包含详细设计文档、测试、CI/CD、代码_qt局域网聊天系统

ScrollReveal 滚动元素进入/离开视口时制作动画_scrollreveal清除-程序员宅基地

文章浏览阅读353次。ScrollReveal 滚动元素进入/离开视口时制作动画_scrollreveal清除

【WSN定位】基于chan算法和克美拉罗界算法实现无线传感器定位及误差对比附matlab代码_克拉美罗界matlab仿真-程序员宅基地

文章浏览阅读839次。1 简介无线定位技术是近年来十分热门的研究课题,它的基本原理是通过测量移动台和各固定位置节点之间的传播信号的特征参数(如到达角、传播时间或时间差、电波场强等)来估算出移动台的几何位置。无线传感器网络(WSN)由检测网络内大量微型传感器节点组成,它在实现运动目标的跟踪定位方面具有不可比拟的优势。无线传感器网络内应用基于到达时间差(TDOA)的定位方法对移动物体的定位,是应现代军事和民用的需求而发展起来的一门新兴技术。目前,国内外很多学者专注于无线传感器网络定位算法研究,涌现出了许多高质量的理论成果。无线._克拉美罗界matlab仿真

随便推点

uC/OS-II学习笔记(一)嵌入式实时系统介绍_uc/os嵌入式是什么意思-程序员宅基地

文章浏览阅读1.5k次。操作系统的主要功能:任务调度(处理器管理),内存管理,设备管理,文件管理,网络通信管理,提供用户接口。嵌入式系统的定义:嵌入式系统是对对象进行自动控制而使其具有智能化并可嵌入对象体系中的专用计算机系统。嵌入式系统的特点:1、专用性强,通常面向某个特定应用,其硬件为特定用户群来设计。2、可裁剪性好,其硬件和软件可根据用户实际应用需要设计,去除冗余功能,使其能满足应用要求的情况下达到最精简的配置。3、..._uc/os嵌入式是什么意思

GSM/GPRS_gsm class 12-程序员宅基地

文章浏览阅读1.5k次。1. GSM全球移动通讯系统(Global System for Mobile Communications)2. GPRS通用分组无线业务(General Packet Radio Service) GPRS是在GSM系统基础上发展起来的分组数据承载和传输业务,GSM是一种电路交换系统,而GPRS是一种分组交换(包交换)系统。关于GPRS这里简单介绍它的几个简单的重要知识,更多详细请自行找资料学习(1)GPRS服务种类GPRS服务种类分为Class A/B/C,Class A:是能同时支持_gsm class 12

HTML和CSS学习笔记_网页 支持 中文 meta-程序员宅基地

文章浏览阅读348次。Hyper Text Markup Language超文本标记语言(一种做网站编程语言)超文本:文本内容+非文本内容标记:有单标签和双标签之分语言:编程语言HTML负责编写网页的结构。_网页 支持 中文 meta

如何将图片无损放大?这3个方法绝对好用,快试试-程序员宅基地

文章浏览阅读690次。分享3个可以让模糊图片变清晰的工具,操作简单处理效果好,能让人物、风景、动漫等多种类型的图片变清晰!_图片无损放大

PHP简易表单验证与简易留言板实例扩展-V1.0(实现分页操作)_留言板php分页设计-程序员宅基地

文章浏览阅读785次。PHP简易表单验证与简易留言板实例扩展-V1.0代嘎吼,我系Yangrl. 本次扩展优化了代码(好吧我在努力让它变好看╥﹏╥),增加分页功能。不足之处请您指出,一定马上改正并且给您个么么哒~上代码!头部php:<?phpheader('content-type:text/html;charset=utf-8');date_default_timezone_set('PRC');//初始化变量_留言板php分页设计</div>

flink cdc笔记(一):flink cdc简介-程序员宅基地

文章浏览阅读2.9w次,点赞14次,收藏69次。flink cdc_flink cdc

推荐文章

热门文章

相关标签