stm32 无符号整形_将32位无符号整数表示的时间信号转化为习惯的形式

STM32 的RTC模块中有需要将无符号的32位整形数字转化为包含年,月,日,时,分,秒的结构体或者其余表达形式的信号,在纠结了好久之后,勉强第一次实现了功能,现在贴上代码PS: 因为KEIL调试不够方便,将代码移植到WINDOWS里面调试成功,目前还未移植到STM32中。#include typedef unsigned char INT8U;typedef unsigned s...
摘要由CSDN通过智能技术生成

STM32 的RTC模块中有需要将无符号的32位整形数字转化为包含年,月,日,时,分,秒的结构体或者其余表达形式的信号,在纠结了好久之后,勉强第一次实现了功能,现在贴上代码

PS: 因为KEIL调试不够方便,将代码移植到WINDOWS里面调试成功,目前还未移植到STM32中。

#include

typedef unsigned char         INT8U;

typedef unsigned short int     INT16U;

typedef unsigned int         INT32U;

/*    rtc.h

*/

#ifndef __RTC_H__

#define __RTC_H__

#define SECDAY 86400UL

#define YEAR_START    1970    //系统第一天为1970年1月1日

#define FIRST_WEEK    6        //1970年1月1日为星期四    2000年1月1日为星期六

#define YEAR_TOTAL    130        //只支持100年的数据

//定义结构体记录从RTC模块读取出的数据

typedef struct rtc_time{    //没有加入溢出检查模块,请自行防止数字溢出

INT8U tm_sec;    //0-59

INT8U tm_min;    //0-59

INT8U tm_hour;    //0-23

INT8U tm_day;    //1-31

INT8U tm_week;    //1-7

INT8U tm_mon;    //1-12

INT8U tm_year;     //0- YEARTOTAL-1

} RTC_S;

void to_tm(INT32U tim,RTC_S* tm);      //将32位数字转换为结构体

void from_tm(RTC_S* tm,INT32U* tim);    //从tm中读取内容记录到tim中

void quick_init(void);    //快速初始化,其实功能是加快后续运算,空间换时间

#endif

/*    rtc.c

事实时钟模块

*/

//#include "includes.h"

#define ISLEEP(YEAR) (((YEAR)%4 =&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值