stm32h7中RTC的BCD模式与BIN模式

这篇具有很好参考价值的文章主要介绍了stm32h7中RTC的BCD模式与BIN模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

stm32h7中RTC的BCD模式与BIN模式,主流单片机开发(MCU),arm开发,stm32,c语言,单片机

RTC的BCD格式与BIN格式

BCD(Binary-Coded Decimal)和BIN(Binary)是两种不同的数字表示格式。

  1. BCD格式:
    BCD是一种用二进制编码表示十进制数字的格式。在BCD格式中,每个十进制数位使用4位二进制数来表示,范围从0到9。例如,数字5在BCD格式中表示为0101,数字9表示为1001。这种编码方式使得BCD数值的每个数位都直接对应于十进制数位,更易于人们阅读和理解。在RTC中,BCD格式常用于表示日期和时间的各个数位,例如年份、月份、日期、小时、分钟和秒。

  2. BIN格式:
    BIN格式是一种直接使用二进制数表示数字的格式。在BIN格式中,每个十进制数位使用4位二进制数或更多位来表示,范围从0000到1111。例如,数字5在BIN格式中表示为0101,数字9表示为1001。BIN格式直接使用二进制数表示数字,更适合用于数值计算和处理。

区别:
BCD格式和BIN格式的主要区别在于它们的编码方式和表示范围。BCD格式使用4位二进制数表示一个十进制数位,可直接对应于十进制数值,更易于人们理解和读取。而BIN格式直接使用二进制数表示数字,适合于计算和处理。BCD格式可以更直接地表示日期和时间等需要以十进制形式呈现的数值,而BIN格式更适合于数值计算和算术操作。

在RTC中,通常使用BCD格式来表示日期和时间的各个数位,以方便人们读取和理解。然而,在进行数值计算和处理时,可能需要将BCD格式的数据转换为BIN格式进行操作,然后再转换回BCD格式以进行显示和存储。这样可以在方便阅读和计算之间取得平衡。

bin与bcd的转换

在STM32H7系列微控制器的RTC模块中,并没有直接用于BCD和BIN格式之间转换的内置函数或方法。但是,你可以使用一些简单的算法来实现这种转换。以下是一个示例代码,展示了如何在STM32H7上进行BCD和BIN格式之间的转换:

// 将BCD格式转换为BIN格式
uint8_t bcd_to_bin(uint8_t bcd_value) {
    uint8_t tens = bcd_value >> 4;
    uint8_t ones = bcd_value & 0x0F;
    return (tens * 10) + ones;
}

// 将BIN格式转换为BCD格式
uint8_t bin_to_bcd(uint8_t bin_value) {
    uint8_t tens = bin_value / 10;
    uint8_t ones = bin_value % 10;
    return (tens << 4) | ones;
}

在上述代码中,bcd_to_bin函数将一个BCD格式的值转换为BIN格式的值。它首先将BCD值的高4位(代表十位数)右移4位,得到十位数的值。然后,通过将十位数乘以10,再加上低4位(代表个位数),得到转换后的BIN格式值。

bin_to_bcd函数将一个BIN格式的值转换为BCD格式的值。它首先通过除以10得到BIN值的十位数,然后通过取模运算得到BIN值的个位数。最后,通过将十位数左移4位(放入BCD值的高4位),再与个位数相或,得到转换后的BCD格式值。

请注意,上述代码中的转换函数是基于8位的数值。在实际应用中,你可能需要根据具体的RTC模块和需要转换的数值位数进行适当的修改。

stm32h7中RTC的BCD模式与BIN模式,主流单片机开发(MCU),arm开发,stm32,c语言,单片机文章来源地址https://www.toymoban.com/news/detail-816646.html

到了这里,关于stm32h7中RTC的BCD模式与BIN模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • STM32H7使用FileX库BUG,SD卡挂载失败

    使用STM32H7+ThreadX+FileX,之前使用swissbit牌的存储卡可正常使用,最近项目用了金士顿的存储卡,发现无法挂载文件系统。 调试过程发现,关闭D-Cache可以挂载使用exfat文件系统。 FileX对SD卡读写接口全部位于fx_stm32_sdio_driver.c中,查看该文件可以发现在读写函数中已经考虑到使用

    2024年04月28日
    浏览(41)
  • STM32 CubeMX 无法将 STM32H7 的最大 CPU 频率设置为 480 MHz

    使用stm32cubemx设置时钟树为480MHz时,提示 cpu clock frequency must be =200MHZ 对于STM32H7 需要CPU修订版 为 V 才能达到 480 MHz 的最大频率。 使用STM32Programmer查看芯片修订版,确认是V版本: 在STM32CubeMX PinConfiguration 界面修改RCC选项,将Product Version设置为V: 此时时钟树界面已可以设置48

    2024年02月16日
    浏览(46)
  • STM32H7 SDMMC+FATFS+USBMSC+FREERTOS 虚拟U盘

    通过cubemx配置 实现STM32H7 SDMMC+FATFS+USBMSC+FREERTOS 虚拟U盘 1.使用FAFTS文件操作系统,实现STM32虚拟U盘,读写外部SD卡,fatfs和usb mass storage class共存。 2.请先完成上一个帖子的步骤 -- 跳转https://blog.csdn.net/hjn0618/article/details/130383593 硬件平台:正点原子阿波罗 STM32H734IIT6 开发工具:

    2024年02月10日
    浏览(37)
  • STM32H7使用QSPI外扩flash(linux下使用openocd操作)

    根据安福莱的STM32H7教程,H7单片机的QSPI外设是直接连到芯片内核上的,地址是0X90000000;那么就可以通过QSPI外设,将外置flash内存映射,并由此执行代码。 相关操作在keil5上比较简单,配置点东西就行;可以参考安福莱教程。 这里要介绍的是在linux环境下没有keil5 IDE的情况下

    2024年01月16日
    浏览(51)
  • STM32H7并行读取AD7606数据以及片内AD值不准解决办法

    先了解一下AD7606,16位,单电源,200k采样率,8路,除了贵没有其他缺点,数据相当的稳,一个5V供电,不用运放的情况下采集电压精度可以达到1mv,非常Nice 与单片机相连 单片机 调用代码 测试发现AD采集到的电压要远小于实际电压,H7的AD还是16位的,不能这么拉跨吧,在网上

    2024年02月11日
    浏览(46)
  • 【STM32H7 开发笔记】| 02 - 通过定时器级联方式同步启动多个定时器并输出 PWM 波形

    (STM32H723xE/G) 所有定时器包括 两个高级控制定时器、十二个通用定时器、两个基本定时器、五个低功耗定时器、两个看门狗定时器和一个SysTick定时器 。所有计时器计数器都可以在Debug模式下冻结。 本次实验主频配置的是500MHz 高级控制定时器(TIM1,TIM8)可以看作是在6通道

    2024年02月14日
    浏览(40)
  • APM32F072单片机进入STOP模式,并通过RTC Wakeup Timer和USART1串口接收事件唤醒

    串口初始化(注意USART1时钟源要选择HSI): 使用power_init函数初始化RTC,然后调用power_enter_stop_mode(n)函数进入STOP模式,n秒后自动唤醒,或由USART1接收唤醒:

    2024年02月13日
    浏览(48)
  • cubmx基础操作,hal库基本配置流程之使用 stm32cubmx生成HAL库进行gpio点亮led(stm32h7xx)(超详细,小白教程)

    HAL库(硬件抽象层库)是一个提供对底层硬件操作的抽象的库,它使得开发者可以使用统一的接口进行硬件操作,而不必关心底层硬件的具体实现细节。HAL库通常由硬件厂商提供,用于支持其硬件设备,并为其提供标准化的接口。 HAL库的主要目的是简化底层硬件的操作,使得

    2024年02月20日
    浏览(54)
  • 32单片机RTC时间接续,掉电时间保存

    前提:首先要实现RTC掉电之后时间还能继续走,RTC电池是必要的 说明:设备第一次启动需要初始化配置RTC,但当二次启动再重新配置RTC会导致RTC计数器置零,所以传统的程序流程是不行的,我们需要知道设备是第一次启动还是二次启动,来判断是否需要重新初始化配置RTC。另

    2024年01月17日
    浏览(46)
  • 【正点原子STM32】RTC实时时钟(RTC方案、BCD码、时间戳、RTC相关寄存器和HAL库驱动、RTC基本配置步骤、RTC基本驱动步骤、时间设置和读取、RTC闹钟配置和RTC周期性自动唤醒配置)

    一、RTC简介 二、STM32 RTC框图介绍 2.1、STM32 F1 RTC结构框图 2.2、STM32 F4 / F7 / H7 RTC结构框图 三、RTC相关寄存器介绍 3.1、RTC基本配置步骤 3.2、RTC相关寄存器(F1) 3.3、RTC相关寄存器(F4 / F7 / H7) 四、RTC相关HAL库驱动介绍 4.1、RTC相关HAL库驱动(F1) 4.2、RTC相关HAL库驱动(F4 / F7 /

    2024年03月27日
    浏览(67)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包