u16 people_id[50]
=;/* 假設公司最多50人 */
u16 people_clock_t[50]
;/* 每個人簽到次數 */
u16 people_num =2;
/* 人數 */
#define debug
#define flash_size 64
/* 所選mcu的flash容量大小(單位為k) */
#if flash_size < 256
#define sector_size 1024
/* 位元組 */
#else
#define sector_size 2048
/* 位元組 */
#endif
flash_status debug;
/* flash 寫函式 以8 bit 方式寫入 */
void
flash_writedata
( uint32_t startaddress, uint16_t *writedata, uint16_t counttowrite )
/* 解鎖寫保護 */
flash_unlock()
;/* 計算去掉0x08000000後的實際偏移位址 */
offsetaddress = startaddress - flash_base;
/* 計算扇區位址 */
sectorposition = offsetaddress / sector_size;
/* 對應扇區的首位址 */
sectorstartaddress = sectorposition * sector_size + flash_base;
flash_clearflag
( flash_flag_eop | flash_flag_pgerr | flash_flag_wrprterr )
;/* 擦除這個扇區 */
debug =
flash_erasepage
( sectorstartaddress )
;#ifdef debug
if( debug != flash_complete )
printf
("扇區擦除失敗\n\n");
#endif
for( i =
0; i < counttowrite; i++
)flash_lock()
;/*上鎖寫保護 */
}u16 stmflash_readhalfword
( u32 faddr )
/* 16位資料讀取 */
void
flash_readmoredata
( u32 readaddr, u16 *pbuffer, u16 numtoread )
}void
write_to_flash
(void
)for
( c =
0; c <
50; c++
) shuju[
100]
= people_num;
flash_writedata
(0x08004000
, shuju,
101)
;/* 寫入 */
}void
read_from_flash
(void
)for
( c =
0; c <
50; c++
) people_num = shuju[
100]
;}
main
void main(void)
}
STM32F103C8T6學習筆記 中斷
1 nvic 巢狀向量中斷控制器 即中斷優先順序管理 scr aircr暫存器 bit10 8 111 0位搶占優先順序 4位響應優先順序 這是整個系統的 每乙個中斷 對應ip暫存器 可設定成搶占優先順序 響應優先順序0 16 這是對應具體乙個中斷的 110 1位搶占優先順序 3位響應優先順序 ip...
《STM32》F103C8T6最小系統
復位電路是一種用來使電路恢復到起始狀態的電路裝置,它的操作原理與計算器有著異曲同工之妙,只是啟動原理和手段有所不同。復位電路,就是利用它把電路恢復到起始狀態。就像計算器的清零按鈕的作用一樣,以便回到原始狀態,重新進行計算。和計算器清零按鈕有所不同的是,復位電路啟動的手段有所不同。一是在給電路通電時馬...
有關STM32F103C8T6的超頻
閒來無事突然對32的超頻來了興趣。其實是學校有個實訓,給的微控制器是stm32f1做,想著能弄的更好點就想著把f1超頻一下,感覺能完成更多的事情吧。平台是 上通用的st32f103c8t6最小系統板。看了正點原子的論壇之後感覺,雖然很多大佬都超頻過,但是具體超頻的方法好像沒有路子,我查了好久是沒有查...