stm32cubemx生成驱动程序里面的变量,如何被main函数调用

news2024/11/26 14:38:36

用stm32cubemx生成了一个串口中断程序,功能实现了对不定长输入字符的统计和输出打印,在主函数写了回调函数void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)

想重新排版,把回调函数放到UART.c里面,

考虑到main.c和uart.c有公用的变量。在uart.h定义了extern变量

/* USER CODE BEGIN Private defines */

extern uint8_t rx_flag; //输入结束的标志位
extern uint8_t uart_rxbuf[100]; //输入数据的缓存区
extern uint8_t uart_rx[1];//输入字符
extern uint16_t len;
/* USER CODE END Private 

编译报错。

 L6200E: Symbol rx_flag multiply defined (by usart.o and main.o).

很奇怪,因为目前变量只在uart.h中定义。

后面看了下正点原子的例程,是把extern变量放到uart.h的最下方,

然后我照着把这几个变量挪到相同的位置,编译后,还是报错。

uart-itzhongduan\uart-itzhongduan.axf: Error: L6200E: Symbol HAL_UART_RxCpltCallback multiply defined (by usart.o and main.o).

然后去查看,发现main.c也有中断回调函数,删掉。在编译一次。

还是不行。

最笨的方法没在main.c 也复制一份。

uint8_t rx_flag=0; //输入结束的标志位
uint8_t uart_rxbuf[100]; //输入数据的缓存区
uint8_t uart_rx[1];//输入字符
uint16_t len;
uint16_t uart_state;
再来编译一次。

"uart-itzhongduan\uart-itzhongduan.axf" - 0 Error(s), 0 Warning(s).

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

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

相关文章

使用Adobe Photoshop CS5给图片加水印

使用Adobe Photoshop CS5给图片加水印 前言1.我这里使用的是Adobe Photoshop CS52.新建空白画布3.写入水印内容4.按 Ctrl T 将其倾斜5.右键图层选择“混合选项”6.选择描边,颜色选择灰色7.效果如下8.填充选择0,不透明度选择75%9.打开编辑,选…

上海冷链配送新篇章 华鼎冷链科技以卓越服务餐饮品牌

在快速发展的上海餐饮连锁行业中,冷链运输作为保障食品安全与品质的关键环节,正迎来前所未有的发展机遇与挑战。华鼎冷链科技作为该领域的佼佼者,正引领着上海乃至全国冷链运输行业的新风尚。 华鼎冷链科技的成功并非一蹴而就。首先&#xff…

1990-2023年上市公司常用变量数据(1400+指标)

1990-2023年上市公司常用变量数据(1400指标) 1、时间:1990-2023年 2、范围:上市公司 3、格式:dta 4、来源:上市公司年报 5、指标:包括上市公司基本信息(性质、行业、地址&#…

Linux智能控制器用于非标自动化印刷包装机械

科技的不断发展,印刷包装机械行业也在不断寻求创新和突破。Linux 智能控制器、非标自动化以及二次开发等技术的出现,为该行业的发展带来了新的机遇。本文将结合 BLIoTLink 协议软件,探讨这些技术如何加速印刷包装机械产业的升级。 Linux 智能…

C++STL专题 vector底层实现

目录 一, vector的手搓 1.构造函数 2. 拷贝构造的实现 3.析构函数 4.begin() end() 的实现 5.reserve的实现 6.size和capacity的实现 7.push_back的实现 8.pop_back的实现 9.empty的实现 10.insert的实现 11.erase的实现 12.resize的实现 13.clear的实…

Cadence23学习笔记(十七)

吴老师的网站里面有很多cadence的开源项目,可以用来学习: 全志 H3 SOC 官方参考设计 DD3 16bitX2 原理图及PCB – 吴川斌的博客 (mr-wu.cn) cadence设置显示实时的走线长度: 在allegro进行布线时可以实时显示当先布线的实际长度有助于pcb的…

Javascript——NaN有什么用法

简介 在 JavaScript 中,NaN(Not a Number)是一个特殊的值,用来表示非数字的结果,例如一个不合法的数学运算的结果。根据 IEEE 754 浮点数标准,NaN 不等于任何值,包括它自己。这意味着 NaN 是唯…

腾讯云服务器windows系统如何转linux系统

本人购买了腾讯云服务,进去后发现是windows系统的,有点郁闷(使用不习惯),于是就去查查看看能不能将Windows系统转成linux系统,网上也有解决办法,但是貌似跟现在的腾讯云后台不一致,下…

dlid源码快速安装——百分百成功

前言 之前安装过一次dlib折腾了很久,最近子啊新的服务器上重新安装dlib这个包又遇到了一些问题,这里简单记录一下。 安装 我这里选择的是直接使用源码安装(之前尝试过其他的安装方法,但是都失败了,索性这次就直接使用…

基于Java和Mysql的多人命题系统

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:B/S架构、SSM框架 工具:Eclipse开发工具 系统展示 首页 管理员界面 教师管理界面 学生…

OZON热销文具产品,OZON文具有哪些热销品

OZON平台上的热销文具产品种类繁多,这些产品不仅满足了消费者在日常学习、办公中的需求,还体现了市场的趋势和消费者的偏好。以下是一些OZON平台上的热销文具产品及其特点: OZON热销文具产品地址:D。DDqbt。COm/74rD Top1 蓝色…

揭秘!结构健康自动化监测:高效精准,为何远超传统人工监测?

人工检测是依靠目测检查或借助于便携式仪器测量得到的信息,但是随着整个行业的发展,传统的人工检测方法已经不能满足检测需求,从人工检测到自动化监测已是必然趋势。 a. 从检测方式看 人工检测需要耗费大量的精力,从摆放检测工具到…

机器学习算法———深度学习(常见的结构)

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

【wiki知识库】07.用户管理前端模块的添加-前端部分

🍊 编程有易不绕弯,成长之路不孤单! 目录 🍊 编程有易不绕弯,成长之路不孤单! 一、今日目标 二、前端部分的改造 2.1 修改the-header文件 2.2 用户展示/admin/user组件添加 2.2.1 /admin/user代码如下…

杂谈c语言——3.内存对齐

先看两个例子: typedef struct S {int a;double b;char c; }S;typedef struct B {int a;char b;double c; }B;int main() {printf("S : %d\n", sizeof(S));printf("B : %d\n", sizeof(B));return 0; } 结果为: S:24; B:16&#xff…

【Qt】项目代码

main.cpp文件 argc:命令行参数个数。*argv[ ]:每一个命令行参数的内容。main的形参就是命令行参数。QApplication a(argc, argv) 编写一个Qt的图形化界面程序,一定需要QApplication对象。 widget w; 在创建项目的时候,勾选widg…

AI岗位平均月薪已经超过4.6万,程序员该如何抓住这个机遇?

前言 自从ChatGPT横空出世以来,市场上一直用“iPhone时刻”、“划时代”、“工业革命”等词汇来形容AI领域的飞速进展。如今,随着AI大模型的竞争日益激烈,这个领域正在以前所未有的速度向前发展。 AI大模型的革命性突破 OpenAI最新推出的G…

Linux--网络层IP

IP协议 IP协议,全称Internet Protocol(互联网协议),是TCP/IP协议族中的核心协议之一,用于在互联网络上进行数据的传输。IP协议的主要功能是确保数据从一个网络节点(如计算机、服务器、路由器等&#xff09…

【C++第11章】Vector

【C第11章】Vector vector介绍🧐 vector是表示可变大小数组的序列容器,它类似于数组,但大小可以动态改变,并且大小会被容器自动处理。本质上说,vector使用动态分配数组来存储元素,为了减少扩容代价&#x…

音频剪辑软件哪个好用?音乐制作必备的6款音频剪辑工具

在这个充满声音的世界里,音乐和音频不仅仅是艺术表达的一种形式,更是情感的载体,是故事的讲述者。 你是否曾想过,那些令人动容的电影配乐、让人热血沸腾的电音节拍或是清晨唤醒你的温柔闹钟,是如何从一堆杂乱无章的声…