stm32(GD32,apm32),开优化后需要特别注意的地方

这篇具有很好参考价值的文章主要介绍了stm32(GD32,apm32),开优化后需要特别注意的地方。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提到优化就不得不提及 volatile

使用场景
1:中断服务程序中修改的供其它程序检测的变量,需要加volatile; :
2:多任务环境下各任务间共享的标志,应该加volatile;
3:并行设备的硬件寄存器(如:状态寄存器)

还有一种就是今天遇到的查了半天,容易忘记

起因:
使用gd32F103cb来开发,然后采取i2c 协议操作eeprom,
调试eeprom写入的时候如图
stm32(GD32,apm32),开优化后需要特别注意的地方,stm32,嵌入式硬件,单片机
延时2ms,在优化等级为O0的时候没问题,但是在等级为O3的时候经过调试发现,一直无法写入成功,因为我是采取TFDB方式来写入的,还以为移植TFDB出现了问题,最后直接通过调用最底层I2C 写入都失败,

让我们来看下这个延时函数的实现方法如下;
这个是我修改后的,加入了volatile
stm32(GD32,apm32),开优化后需要特别注意的地方,stm32,嵌入式硬件,单片机
就是单纯的空运转,如果不加入关键字就会被优化掉,从而导致上述I2C的协议中延时出问题,最后导致因为协议问题无法写入eeprom。文章来源地址https://www.toymoban.com/news/detail-704276.html

到了这里,关于stm32(GD32,apm32),开优化后需要特别注意的地方的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue3的props需要注意的地方(简写与监视属性)

    在工作中踩了props的坑,总结一下: 1.props是可以在模板语法中简写的。就好比,toRefs了一下state。我们没必要在模板语法中加上props.xxx; 2.有时我们需要监视props的内容,可以用到监视属性watch。我们可以先复习一下watch在Vue3的用法: 具体也可以见一下这篇博客:Vue3中watch的

    2024年02月07日
    浏览(29)
  • 《嵌入式 – GD32开发实战指南》第12章 ADC

    开发环境: MDK:Keil 5.30 开发板:GD32F207I-EVAL MCU:GD32F207IK GD32F2系列有 3 个逐次逼近型的ADC,精度为 12 位,有18个多路复用通道,可以转换来自16个外部通道和2个内部通道的模拟信号。其中ADC0 和 ADC1都有 16 个外部通道, ADC2 根据 CPU 引脚的不同通道数也不同,一般都有8 个外部

    2023年04月08日
    浏览(55)
  • 嵌入式_GD32使用宏开关进行Debug串口打印调试

    串口Debug是一种将数据通过串口发送的方法。通过使用printf函数,我们可以将需要发送的数据格式化为字符串,并通过串口发送出去。在C语言中,通常使用串口发送数据的函数为printf函数,但是需要将标准输出重定向到串口。 本文详细的介绍了如何重定向printf输出到串口输出

    2024年02月14日
    浏览(38)
  • 嵌入式_一种非常简单实用的基于GD32的裸机程序框架

    搜索了一下关于GD或ST裸机程序的问题,网上有非常多也非常的例子,但是针对裸机开发的程序框架却比较少,这里简单整理了一下在项目中使用过的一种比较小巧便携的裸机程序框架(确切点说算不上框架,只能说一种写法)。 之前常见的裸机程序框架就是流水账框架,比

    2024年02月13日
    浏览(30)
  • 【正点原子STM32连载】第四章 APM32初体验 摘自【正点原子】APM32E103最小系统板使用指南

    1)实验平台:正点原子APM32E103最小系统板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609294757420 3)全套实验源码+手册+视频下载地址: http://www.openedv.com/docs/boards/xiaoxitongban 本章并不涉及程序代码的编写,而是介绍如何编译工程、烧录程序以及进行程序的调试仿真,让读者

    2024年02月21日
    浏览(47)
  • gd32和stm32的区别

    gd32和stm32的区别 现在的市场上有很多种不同类型的微控制器,其中比较常见的有两种,即gd32和stm32。两种微控制器都是中国和欧洲的两个公司分别推出的,但是它们之间有很多区别,本文将会深入探讨这些区别。 1.起源和历史 gd32是中国的光弘科技公司于2014年推出的微控制器

    2024年02月03日
    浏览(23)
  • 【GD32/STM32】FreeRtos移植

    ​ (1)下载FreeRtos源码包 ​ FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensions ​ (2)将源文件添加至工程 ​ (3)将GD32中的三个中断交由FreeRtos接管 ​ (4)配置管理FreeRTOS.h文件 ​ (5)FreeRtos基本使用方法 源码包结构 1.Demo中存放的

    2024年01月20日
    浏览(29)
  • [GD32F4]基于GD32固件库移植cherryusb[STM32F4]

    [GD32F4]基于GD32固件库移植cherryusb[STM32F4] 使用开发板是淘宝买的不知名开发板,没什么好说的,具体的型号是GD32F450VET6。 使用的cherryusb版本是0.9.0版本。 使用的GD32官方固件库版本是:GD32F4xx_Firmware_Library_V3.0.4 cherryusb最牛的地方在于抛弃掉所有的依赖,只需要知道芯片的usb中断

    2024年02月06日
    浏览(40)
  • STM32平替GD32有多方便

    众所周知, GD32一直模仿STM32,从未被超越。 我最近公司使用的 GD32E230C6T6 这款芯片有48个引脚。 属于小容量的芯片。 我有一个用STM32写的代码,之前是用的 STM32F103CB 这款芯片是 中容量 的。 不过在keil中,只需要这两步,就能使用原来的逻辑,几乎不用修改代码。 1.  替换汇

    2024年03月17日
    浏览(23)
  • STM32,GD32,CH32相关补充(自用)

    Keil代码一键对齐工具_keil5代码对齐_感谢地心引力的博客-CSDN博客 【KEIL-MDK】系列——如何使用PC-Lint代码检查工具_keil pclint_Xiaoyibar的博客-CSDN博客  CAN总线分析仪使用及调试方式_can分析仪_Kevin的学习站的博客-CSDN博客 CAN通信知识梳理及在Stm32上的应用(HAL库)_冬瓜~的博客-C

    2024年02月16日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包