資源簡介
用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)?=
- 上一篇:adb1.0.31windows版本
- 下一篇:linux SCSI-UFS協議總圖
評論
共有 條評論