STM32F407ZGT6 LQFP144 uart 打印输出

news2024/11/26 1:23:02

STM32F407ZGT6 +AX58100 ETHERCAT芯片软件,需要查看SSC 协议栈运行情况,UART输出状态信息。

STM32F407ZGT6 驱动库使用标准库,虽然老,但是够用。

1.STM32F407ZGT6 芯片情况

STM32F407ZGT6 作为AX58100 的主控

2.板子硬件

STM32F407ZGT6 +AX58100 ETHERCAT 从站开发板

2.0 硬件连接图

AX58100 核心板的UART 采用UART1 PB6 PB7 PIN
在这里插入图片描述

2.1 UART1配置

/*
*********************************************************************************************************
*	º¯ Êý Ãû: uart1_Init
*	¹¦ÄÜ˵Ã÷: ´®¿Ú1³õʼ»¯º¯Êý
*	ÐÎ    ²Î: 1.bound£¨´®¿Ú²¨ÌØÂÊ£©
*	·µ »Ø Öµ: ÎÞ
*********************************************************************************************************
*/ 
void uart1_Init(u32 bound)
{
   //GPIO¶Ë¿ÚÉèÖÃ
  GPIO_InitTypeDef GPIO_InitStructure;
	USART_InitTypeDef USART_InitStructure;
	
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE); //ʹÄÜGPIOAʱÖÓ
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//ʹÄÜUSART1ʱÖÓ
//	GPIO_PinAFConfig(GPIOB,GPIO_PinSource6,GPIO_AF_USART1);
//	void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF)
	//   GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);
 
	//´®¿Ú1¶ÔÓ¦Òý½Å¸´ÓÃÓ³Éä
	GPIO_PinAFConfig(GPIOB,GPIO_PinSource6,GPIO_AF_USART1); //GPIOA9¸´ÓÃΪUSART1
	GPIO_PinAFConfig(GPIOB,GPIO_PinSource7,GPIO_AF_USART1); //GPIOA10¸´ÓÃΪUSART1
	
	//USART1¶Ë¿ÚÅäÖÃ
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7; //GPIOA9ÓëGPIOA10
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//¸´Óù¦ÄÜ
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;	//ËÙ¶È50MHz
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //ÍÆÍ츴ÓÃÊä³ö
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //ÉÏÀ­
	GPIO_Init(GPIOB,&GPIO_InitStructure); //³õʼ»¯PA9£¬PA10

   //USART1 ³õʼ»¯ÉèÖÃ
	USART_InitStructure.USART_BaudRate = bound;//²¨ÌØÂÊÉèÖÃ
	USART_InitStructure.USART_WordLength = USART_WordLength_8b;//×Ö³¤Îª8λÊý¾Ý¸ñʽ
	USART_InitStructure.USART_StopBits = USART_StopBits_1;//Ò»¸öֹͣλ
	USART_InitStructure.USART_Parity = USART_Parity_No;//ÎÞÆæżУÑéλ
	USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//ÎÞÓ²¼þÊý¾ÝÁ÷¿ØÖÆ
	USART_InitStructure.USART_Mode =  USART_Mode_Tx;	//ÊÕ·¢Ä£Ê½
  USART_Init(USART1, &USART_InitStructure); //³õʼ»¯´®¿Ú1
	
  USART_Cmd(USART1, ENABLE);  //ʹÄÜ´®¿Ú1 
	//USART_ClearFlag(USART1, USART_FLAG_TC);   //½â¾öµÚÒ»¸ö×Ö½Ú¶ªÊ§ÎÊÌâ,Èç¹ûµÚÒ»¸ö×Ö½Ú¶ªÊ§¿ÉÒÔ¼ÓÉÏÕâÐÐ
}

2.1.1 UART1调用代码

#include "Dbg.h"

int main(void)
{
	  SysTick_Init();  //ʱÖÓ³õʼ»¯
	  uart1_Init(115200);
//	  LED_Init();      //LED³õʼ»¯
//	  KEY_Init();      //°´¼ü³õʼ»¯
	  Println("³õʼ»¯Íê³É,´òÓ¡¿ª¹ØΪ%d\r\n",Print_Switch);
		printf("build time is %s %s\n\r",__DATE__,__TIME__);		

	/* 
       ÅäÖÃϵͳʱÖÓµ½168MHz
       - Çл»Ê¹ÓÃHSE¡£
       - ´Ëº¯Êý»á¸üÐÂÈ«¾Ö±äÁ¿SystemCoreClock£¬²¢ÖØÐÂÅäÖÃHAL_InitTick¡£
    */
	//	SystemClock_Config();
	//	bsp_InitUart();		/* ³õʼ»¯´®¿Ú */
	
    GPIO_Config(); 
    /* initialize the Hardware and the EtherCAT Slave Controller */
    HW_Init();

    MainInit();

    bRunApplication = TRUE;
    do
    {

        MainLoop();
			extern u32 SysTick_1ms ;
				printf("SysTick_1ms=%d\r\n",SysTick_1ms);
    } while (bRunApplication == TRUE);

    HW_Release();
		
    return 0;

}

2.2 UART1执行结果

在这里插入图片描述

3.参考

1.本地电脑工程路径:

D:\ethercat_stm32_ec01_master\AX58100从站开发板\04.软件开发指南\2.代码例程\EtherCAT例程\IO-FSMC-58100\IO-FMSC-58100\FMSC Ethercat AX58100\STM32F407 Ethercat\MDK-ARM

https://gitee.com/Notmi/stm32-standard-peripheral-libraries/tree/master/stm32%E6%A0%87%E5%87%86%E5%BA%93_03%E4%B8%B2%E5%8F%A3printf%E6%89%93%E5%8D%B0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/649962.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql双主不一致数据修复

参考: pt-table-checksum — Percona Toolkit Documentation pt-table-sync — Percona Toolkit Documentation #对比host1 test库与备库差别 pt-table-checksum hhost1,proot,P3306,uroot -d test --recursion-method processlist --no-check-binlog-format -…

Spring Boot进阶(52):Spring Boot 如何集成Flyway并初始化执行 SQL 脚本?| 超级详细,建议收藏

1. 前言🔥 在我们的认知中,我们会使用 SVN 或 Git 进行代码的版本管理。但是,我们是否好奇过,数据库也是需要进行版本管理的呢? 在每次发版的时候,我们可能都会对数据库的表结构进行新增和变更,…

微机保护的数据采集系统(1)

一、模拟五输入电路概述 模拟量输入电路是微机保护装置中很重要的电路。保护装置的动作速度和测量精确度等性能都与该电路密切相关。模拟量输入电路的主要作用是隔离、规范输入电压及完成模数变换,以便与CPU接口,完成数据采集任务。因此这部分电路又称数…

iOS —— xcode14兼容 iOS9~iOS10系统

xcode14兼容 iOS9~iOS10系统 在Xcode升级到Xcode14以后,系统的支持版本升级到了iOS11.0。但是我们项目需要支持iOS9,脚本打包错误提示: The iOS deployment target IPHONEOS_DEPLOYMENT_TARGET is set to 9.0, but the range of …

鼠标的移入、移出事件

目录 一、mouseover和mouseenter 二、mouseout和mouseleave 三、重点总结 在原生JS中鼠标移入移出事件有四个,分别为mouseover ,mouseout ,mouseenter,mouseleave,其中mouseover和mouseenter为移入事件,mouseout和mouseleave为移出事件&…

IDEA提交过滤target、idea、iml、vscode、build、iws、imlz、ipr、xls、rebel.xml

一、问题截图(IDEA提交过滤target、idea、iml、vscode、build、iws、imlz、ipr、xls、rebel.xml) 二、解决 添加.gitignore提交到仓库,就可以了 HELP.md target/ !.mvn/wrapper/maven-wrapper.jar !**/src/main/** #!**/src/test/**### STS …

交换机中光口是如何配置的

在往期的文章中我们有介绍到电口和光口的概念,以及两者之间的区别。本期文章我们来了解一下交换机光口的是如何配置的。 一、交换机光口是如何配置的 1、确认光口类型:首先,确定光口插槽使用的光模块类型(如SFP、SFP、QSFP等&am…

掌握5个关键点,搞定语音识别测试!

现在市面上的智能电子产品千千万,为了达到人们使用更加方便的目的,很多智能产品都开发了语音识别功能,用来语音唤醒进行交互; 另外,各大公司也开发出来了各种智能语音机器人,比如小米公司的“小爱”&#…

Redis实战案例2-基于Redis实现共享session短信登录

1. 实现Redis替代session的业务流程 保存用户登录信息采用Hash结构; key要保证唯一,用随机生成的token(随机字符串)作为key; 并且要保证客户端可以携带key去redis取出value,之前采用session方式是Tomcat自动…

实在智能RPA亮相2023全球人工智能技术博览会,“能对话的数字员工”引领智能自动化新篇章

随着ChatGPT火爆全网,人工智能再次成为学术界和科技领域“新宠”,一场“智能革命”的序幕悄然掀开。 6月13日,“智能驱动 砥砺前行”为主题的2023全球人工智能技术博览会在杭州未来科技城学术交流中心圆满落下帷幕。此次博览会以展示智能科技…

Java开发 - 带你了解集群间的相互调用,你还在等什么?

目录 前言 导读 项目准备 集群准备 父工程引入子项目 服务调用方HelloService准备 pom文件 yml文件 Controller文件 服务提供方HelloWorld准备 pom文件 yml文件 Controller文件 运行此两个工程 hello_world组集群 集群调用测试 RestTemplate换成Dubbo行不行…

web基础与HTTP

文章目录 一.web基础1.域名概述2.DNS解析3.阿里云域名申请流程 二.网页1.网页(HTTP/HTTPS)1.1 网页1.2 网站1.3 域名1.4 HTTP/HTTPS1.5 URL1.6HTML1.7超链接1.8发布 2. HTML2.1HTML超文本标记语言&#xff…

人机交互学习-3 交互设计目标与原则

交互设计目标与原则 交互设计目标可用性目标易用性(learnability)高效率(efficiency)易记性(memorability)少出错(errors)主观满意度(satisfaction) 用户体验…

C++ 11(2)右值引用 | 移动构造、移动赋值

前文中我们讲解了C11中的部分知识点,下面我们来介绍一下C11中的一个比较重要的知识点右值引用。 右值引用和移动语义 左值引用和右值引用 左值引用 左值就是一个数据的表达式(如变量名和解引用指针),我们可以获取它的地址可以…

JD 某工业平台详情API接口PHP接口数据API接口

随着电商市场的蓬勃发展,越来越多的企业正在寻找一种高效、便捷的方式来推销和销售自己的产品。在这个过程中,API接口的使用变得越来越普遍。而京东工业平台商品详情API接口正是一种在推销和销售方面迅速占据市场的技术。 京东工业平台商品详情API接口是…

百度富文本框对接

第一步:引入富文本插件 第二步:修改配置文件 1:ueditor.config.js中,var URL = window.UEDITOR_HOME_URL || getUEBasePath();改为window.UEDITOR_HOME_URL = "http://ip+端口/项目名"; var URL = "http://ip+端口/项目名/.../ueditor/1.4.3/"; …

CORS跨域资源共享漏洞复现——详细利用方法,漏洞危害最大化

文章目录 前言一、漏洞原理以及成因二、CORS漏洞利用总结 前言 在很久很久以前,2021年,我写过一篇关于CORS的漏洞文章,CORS跨域资源共享漏洞靶场演示。当时技术水平欠佳,而且文章内容也仅仅是简单过了一遍漏洞的原理和检测方法&a…

芯片设计全流程概述

芯片设计分为前端设计和后端设计,前端设计(也称逻辑设计)和后端设计(也称物理设计)并没有统一严格的界限,涉及到与工艺有关的设计就是后端设计。 1、规格制定 芯片规格,也就像功能列表一样&…

详解c++---AVL树的原理和实现

目录标题 搜索二叉树的缺点什么是AVL树平衡因子的变化规律AVL树的旋转准备工作insert函数模拟实现左旋转右旋转右左双旋左右双旋 AVL树的打印AVL的查找AVL树的检查 搜索二叉树的缺点 在上一篇文章的学习种我们知道了什么搜索二叉树,它让比根小的节点都在根的左边&a…

数字孪生水网可视化平台提高企业应急联动指挥水平

随着城市化进程的不断加快,给水管网的建设和维护变得越来越重要。传统的给水管网监测和管理方式通常只能通过文字和图片来进行描述和展示,难以直观地了解管网的结构和运行情况。而3D可视化大屏展示技术的出现,为给水管网的监测管控提供了以下…