/* USER CODE BEGIN 2 */printf("RTC test on bearpi borad by mculover666!\r\n");status=HAL_RTC_RegisterCallback(&hrtc,HAL_RTC_ALARM_A_EVENT_CB_ID,AlarmAEventCallback);if(status!=HAL_OK){printf("rtc register callback fail!\r\n");}else{printf("rtc register callback success!\r\n...
.read_alarm = s3c_rtc_getalarm, .set_alarm = s3c_rtc_setalarm, .irq_set_freq = s3c_rtc_setfreq, .irq_set_state = s3c_rtc_setpie, .proc = s3c_rtc_proc, }; 看这两个结构体,我认为就已经达到目的,第一个结构体是平台设备中的driver部分,也就是s3c_rtc_probe,是个很重要的函数,在这里...
int (*read_time)(struct device *, struct rtc_time *); int (*set_time)(struct device *, struct rtc_time *); int (*read_alarm)(struct device *, struct rtc_wkalrm *); int (*set_alarm)(struct device *, struct rtc_wkalrm *); int (*proc)(struct device *, struct seq_file *)...
RTC_ALM_READ rtc_read_alarm 读取闹钟时间 RTC_ALM_SET rtc_set_alarm 设置闹钟时间 RTC_RD_TIME rtc_read_time 读取时间与日期 RTC_SET_TIME rtc_set_time 设置时间与日期 RTC_PIE_ON RTC_PIE_OFF rtc_irq_set_state 开关RTC全局中断的函数 RTC_AIE_ON RTC_AIE_OFF rtc_alarm_irq...
tm_mday); } err = rtc_read_alarm(rtc, &alrm); //读取alarm时间 if (err == 0) { seq_printf(seq, "alrm_time\t: "); //alarm时间 if ((unsigned int)alrm.time.tm_hour <= 24) seq_printf(seq, "%02d:", alrm.time.tm_hour); else seq_printf(seq, "**:"); if ((unsigned ...
int (*read_callback)(struct device *,int data); int (*alarm_irq_enable)(struct device *, unsignedint enabled); int (*update_irq_enable)(struct device *, unsignedint enabled); }; 这个结构是RTC驱动程序要实现的基本操作函数,注意这里的操作不是文件操作。驱动程序通过初始化这样一个结构,将自己...
err = rtc_read_alarm(rtc, &alarm); //调用s3c_rtcops-> read_alarm if (err < 0) return err; if (copy_to_user(uarg, &alarm.time, sizeof(tm))) //长传时间数据 return -EFAULT; break; case RTC_ALM_SET: //设置闹钟时间 , 调用s3c_rtcops-> set_alarm ...
int (*read_time)(struct device *, struct rtc_time *); //读取时间 int (*set_time)(struct device *, struct rtc_time *); //设置时间 int (*read_alarm)(struct device *, struct rtc_wkalrm *); //读取闹钟 int (*set_alarm)(struct device *, struct rtc_wkalrm *); //设...
int32_t (*ReadAlarm)(struct RtcHost *host, enum RtcAlarmIndex alarmIndex, struct RtcTime *time); int32_t (*WriteAlarm)(struct RtcHost *host, enum RtcAlarmIndex alarmIndex, const struct RtcTime *time); int32_t (*RegisterAlarmCallback)(struct RtcHost *host, enum RtcAlarmIndex alarmInde...
{ time_t unixTime = RTC_ReadTimeCounter(&hrtc); return gmtime(&unixTime);}void KK_RTC_Init(){ uint32_t initFlag = HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR1); if(initFlag == RTC_INIT_FLAG) return; if (HAL_RTC_Init(&hrtc) != HAL_OK){ Error_Handler(); } struct tm time ...