• 大小: 8KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: 其他
  • 标签: spi  ds3234  

资源简介

用cm3控制ds3234芯片的读写通过spi的通讯方式

资源截图

代码片段和文件信息

#include “sys.h“
#include “usart.h“
#include “delay.h“
//#include “led.h“ 
//#include “key.h“
//#include “exti.h“
//#include “wdg.h“  
//#include “timer.h“
#include “lcd.h“    
//#include “rtc.h“
#define SPI_DS_CS PAout(4)  //选中FLASH
#define SCLK PAout(5)   
#define MISO PAout(6)
#define MOSI PAout(7)

void SPIx_Init(void);
void SPI_DS_Init(void);
u8 SPIx_ReadWriteByte(u8 TxData);
//void DS3234_rdram(unsigned char* punsigned char addrunsigned char len);
void DS3234_rdrtc(unsigned char* p);
//void DS3234_wrram(unsigned char* punsigned char addrunsigned char len);
void DS3234_strtc(unsigned char* p);
void settoBCD(unsigned char *pSrcunsigned char *pDst);
void DS3234_rdrtcToString(unsigned char *pSrcunsigned char *pDst);
void Time_StringToBCD(unsigned char *pSrc unsigned char *pDst);
int main()
{
// unsigned char set[20] ={‘4‘‘/‘‘4‘‘/‘‘9‘‘ ‘‘9‘‘:‘‘41‘‘:‘‘3‘};
u8 set[20] ={14490153};
unsigned char read[20]a[20]setBCD[20];
// u8 k=0;

  Stm32_Clock_Init(9);//系统时钟设置
delay_init(72); //延时初始化
uart_init(729600); //串口1初始化
LCD_Init();
//POINT_COLOR=RED;
SPI_DS_Init(); 

LCD_ShowString(6050“Mini STM32“);
LCD_ShowString(6070“SPI TEST“);
LCD_ShowString(6090“ATOM@ALIENTEK“);
LCD_ShowString(60110“2010/6/11“);
settoBCD(setsetBCD);                //将设定的时间变成BCD格式  //“13/06/09 10:23:22“   -->  0x130x060x090x100x230x22
// DS3234_rdrtcToString(seta);
// Time_StringToBCD(aset);
DS3234_strtc(setBCD);                                     // DS3234_wrram(a0x0015);// DS3234_rdram(a0x0015);
while(1)
{
DS3234_rdrtc(read);
DS3234_rdrtcToString(reada);
LCD_ShowString(60130a);
}
}



void DS3234_rdrtcToString(unsigned char *pSrcunsigned char *pDst)     //读出时间转换为字符  例13/06/09 09:52:44 
{
        //        uchar uctimeBCD[6];   
        //DS3234_rdrtc(ucTimeBCD);//读时间
        
        *pDst++ = ((pSrc[0]&0xf0)>>4)+48;
        *pDst++ = (pSrc[0]&0x0f)+48;
        *pDst++ = ‘/‘;
        *pDst++ = ((pSrc[1]&0xf0)>>4)+48;
        *pDst++ = (pSrc[1]&0x0f)+48;
        *pDst++ = ‘/‘;
        *pDst++ = ((pSrc[2]&0xf0)>>4)+48;
        *pDst++ = (pSrc[2]&0x0f)+48;
        *pDst++ = ‘ ‘;
        *pDst++ = ((pSrc[3]&0xf0)>>4)+48;
        *pDst++ = (pSrc[3]&0x0f)+48;
        *pDst++ = ‘:‘;
        *pDst++ = ((pSrc[4]&0xf0)>>4)+48;
        *pDst++ = (pSrc[4]&0x0f)+48;
        *pDst++ = ‘:‘;
        *pDst++ = ((pSrc[5]&0xf0)>>4)+48;
        *pDst++ = (pSrc[5]&0x0f)+48;
        
        *pDst = 0;    //0
        
}


void Time_StringToBCD(unsigned char *pSrcunsigned char *pDst)                         //“13/06/09 10:23:22“   -->  0x130x060x090x100x230x22
{
        *pDst = (((*pSrc)-48)<<4) + ((*(pSrc+1))-48);
        *(pDst+1) = (((*(pSrc+3))-48)<<4) + ((*(pSrc+4))-48);
        *(pDst+2) = (((*(pSrc+6))-48)<<4) + ((*(pSrc+7))-48);
        *(pDst+3) = (((*(pSrc+9))-48)<<4) + ((*(pSrc+10))-48);
        *(pDst+4) =

评论

共有 条评论