日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]由于硬件出了問題,也就是外部低速晶振沒用,震不起來,然后查看了網(wǎng)上的帖子,STM32的RTC果然口碑不怎么樣,所以果斷換DS1302,在移植的過程中還算順利,記錄下來吧,也算對(duì)自己的總結(jié)吧!1、所謂的DS1302這里面也指

由于硬件出了問題,也就是外部低速晶振沒用,震不起來,然后查看了網(wǎng)上的帖子,STM32的RTC果然口碑不怎么樣,所以果斷換DS1302,在移植的過程中還算順利,記錄下來吧,也算對(duì)自己的總結(jié)吧!

1、所謂的DS1302


這里面也指明了簡(jiǎn)單的SPI協(xié)議

然后就直接上代碼了,注釋很詳細(xì)的!基本實(shí)現(xiàn)單行注釋

1、主函數(shù)main


#include"stm32f10x.h"

#include"SysTick.h"

#include"Delay.h"

#include"Usart.h"

#include"stdio.h"

#include"DS1302.h"

/*******由于沒有做外設(shè)測(cè)試的程序是:按鍵PA0僅一個(gè)LED燈******/

/*******由于沒有做外設(shè)測(cè)試的程序是:串口采用的是PA9->(T<->T),PA9->(R<->R)*****/

/*******由于沒有做外設(shè)測(cè)試的程序是:ds1302clk<->PA4

ds1302dat<->PA5

ds1302rst<->PA6*****/

externuint8_twrite[];

externuint8_tread[];

intmain(void)

{

//uint8_ttime[]={0,0,12,11,11,1,13};

//初始化系統(tǒng)定時(shí)器

SysTick_Init();

USART1_Config();

ds1302_GPIO_Configuration();//一定別忘記了配置GPIO

printf("rn("__DATE__"-"__TIME__")rn");

//ds1302_init(write,time);//設(shè)置1302的初始時(shí)間

ds1302_data(read);

while(1);//這個(gè)得加,不然的話會(huì)有尾巴是亂碼!?。?/p>

}



/*******************************************************************************

**文件名稱:ds1302.c

**編譯環(huán)境:RealViewMDK-ARM4.53

**文件作者:

**功能說明:ds1302相關(guān)函數(shù)定義

**軟件協(xié)議:模擬SPI協(xié)議

**簡(jiǎn)介:clk上升沿發(fā)送數(shù)據(jù),clk下降沿接收數(shù)據(jù)

:typedefunsignedcharuint8_t;

**

**

**

*******************************************************************************/

/*包含頭文件*****************************************************************/

#include"ds1302.h"

#include"stdio.h"

#include"Delay.h"

uint8_tread[]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};//讀秒、分、時(shí)、日、月、周、年的寄存器地址

uint8_twrite[]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};//寫秒、分、時(shí)、日、月、周、年的寄存器地址

/*PA4、PA6為輸出*/

/*PA5配置為開漏模式,此模式下能夠?qū)崿F(xiàn)真正的雙向IO口*/

voidds1302_GPIO_Configuration(void)

{

GPIO_InitTypeDefGPIO_InitStruct;

GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;

GPIO_InitStruct.GPIO_Pin=ds1302clk|ds1302rst;//clk、rst配置為輸出

GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOA,&GPIO_InitStruct);

GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_OD;//IO配置為雙向

GPIO_InitStruct.GPIO_Pin=ds1302dat;

GPIO_Init(GPIOA,&GPIO_InitStruct);

}

voidwrite_1302byte(uint8_tdat)//寫一個(gè)字節(jié)的數(shù)據(jù)sck上升沿寫數(shù)據(jù)

{

uint8_ti=0;

GPIO_ResetBits(GPIOA,ds1302clk);//ds1302clk=0

Delay_us(2);//延時(shí)大約2us

for(i=0;i<8;i++)

{

GPIO_ResetBits(GPIOA,ds1302clk);//ds1302clk=0;

if(dat&0x01)

GPIO_SetBits(GPIOA,ds1302dat);

else //ds1302dat=(dat&0x01)

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉