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

基于江协标准库所出现的定时器5678以及串口45等无法使用的问题解析

文章目录

  • 出现的问题:
  • 原因分析
    • 芯片支持包太老
    • 启动文件需要更改

基于江协标准库所出现的定时器5678以及串口45等无法使用的问题解析,保姆级教程

出现的问题:

  1. 当正确的初始化配置定时器5\6\7\8等(除TIM1\2\3\4以外的定时器)时,使用定时器所对应的中断函数后,出现0错误0警告但是单片机运行卡死的现象。
  2. 当正确的初始化配置串口4、5等(除串口1、2、3以外的串口)时,使用串口中断函数,发现无法接收和发送数据,且单片机出现运行卡死的现象。

原因分析

芯片支持包太老

在正确配置的前提下:
基于江协的STM32标准库中所使用的芯片支撑包太过古老,用的还是2011年的老古董。
在这里插入图片描述

在这里插入图片描述
然而目前已经更新到了2.4.1了(2022~2023年版本的),芯片包获取:Kell.ARM官网
以下是详细步骤:
‌访问Keil官网‌

  1. 打开 Arm Keil 官方网站(www.keil.arm.com 或 www.keil.com)。 ‌

  2. 点击顶部菜单栏的 ‌Products‌ 或 ‌Hardware‌,选择 ‌Device List‌ 进入芯片列表页面。 ‌

  3. 选择STM32芯片型号‌

  4. 在 ‌Vendor‌ 下拉菜单中选择 STMicroelectronics,然后在 ‌Core‌ 中选择对应的 Cortex-M 内核(如不确定可不选)。 ‌
    或直接在搜索栏输入芯片型号(如STM32F103)筛选。 ‌
    找到目标型号(例如 STM32F103C8)后点击进入详情页。
    ‌下载芯片支持包(DFP)‌

  5. 在芯片详情页找到 ‌STM32F1xx_DFP‌ 或类似命名的选项,点击 ‌Download Recommended Pack‌ 或 ‌Get Pack‌ 下载。

  6. 部分型号可能需要通过 ‌CMSIS Pack‌ 链接下载。‌

  7. 注意事项‌:
    若需离线安装,双击下载的 .pack 文件即可自动安装。
    在这里插入图片描述
    保持默认路径安装即可,记住刚才的路径回到路径下的文件夹,把之前版本的支持包删掉。

启动文件需要更改

  1. 江协的工程模板下用的是startup_stm32f10x_md.s打开这个文件会发现里面并没有TIM5\6\7\8等,UART4、5等的中断回调函数,这会导致及时准确的配置好并调用了中断回调函数,但依然无法识别到它,造成卡死。!

解决:
重新添加:startup_stm32f10x_hd.s
并将startup_stm32f10x_md.s移出工程,
在这里插入图片描述
否则会有以下报错:error: L6235E: More than one section matches selector - cannot all be FIRST/LAST.
在这里插入图片描述
如果在添加完以后出现如下的报错:FCARM - Output Name not specified, please check 'Options for Target - Utilities'这是因为将文件添加到工程中以后,文件的类型不对
应该如下图方式解决:
在这里插入图片描述
在这里插入图片描述
然后OK即可!

http://www.xdnf.cn/news/8191.html

相关文章:

  • 写实交互数字人在AI招聘中的应用方案
  • UE5 Va Res发送请求、处理请求、json使用
  • React 如何封装一个可复用的 Ant Design 组件
  • 学习日记-day13-5.22
  • Dockers Compose常用指令介绍
  • matlab实现无线通信组
  • PG Craft靶机复现 宏macro攻击
  • 第33节:迁移学习与模型微调策略
  • 微服务的应用案例
  • HashMap的基础用法(java)
  • [Harmony]WebView基本用法
  • WebGL基本概念
  • C++:RAII的不能顾名思义?
  • docker多阶段构建镜像
  • gd32e230c8t6 驱动ws2812
  • 几种直流电流采样方法
  • ADC 单次转换、连续转换、扫描转换和间接转换模式 详解。
  • MySQL 可观测性最佳实践
  • 怎样通过神经网络估计股票走向
  • Jeecg漏洞总结及tscan poc分享
  • 现代健康养生指南
  • 性能测试场景题
  • 高频晶振的信号完整性挑战:如何抑制EMI与串扰
  • 如何在 Windows 11/10 计算机上有效粉碎文件
  • 十二、Linux实现截屏小工具
  • [MH22D3开发笔记]1. 变量地址对齐,宏__ALIGNED的使用
  • MRI学习笔记-表征相似性分析(Representational Similarity Analysis, RSA)
  • Redis 中如何保证缓存与数据库的数据一致性?
  • 高性能算法RIME:基于物理的优化的霜冰优化算法
  • Golang——1、环境搭建与入门