完整源碼
stm32_max7219code.zip
(307.5 KB, 售價(jià): 2 E幣)
關(guān)于MAX7912驅(qū)動(dòng)數(shù)碼管的問(wèn)題,論壇上基本找到的都會(huì)51驅(qū)動(dòng)例程。
實(shí)際上我測(cè)試過(guò)根據(jù)資料也沒(méi)有什么問(wèn)題,但是如果一旦移植到32,確發(fā)現(xiàn)不行。檢查時(shí)序沒(méi)有問(wèn)題,百思不得其解,去網(wǎng)上找資料找到的都是硬件spi。
看到spi速率的問(wèn)題時(shí)突然想到8051和stm32單片機(jī)之間的區(qū)別,就是主頻問(wèn)題,f1主頻71M,基本8051只有1M,max7912是否也有反應(yīng)速率的問(wèn)題呢?于是將模擬IO口的工作頻率設(shè)置為10M,發(fā)現(xiàn)問(wèn)題解決。
部分源碼
- void Write7219(unsigned char address,unsigned char dat)
- {
- unsigned char i;
- Max7219_CS(0); //拉低片選線,選中器件
- //發(fā)送地址
- for (i=0;i<8;i++) //移位循環(huán)8次
- {
- Max7219_CLK(0); //清零時(shí)鐘總線
- if((address&0x80))
- {
- Max7219_DIN(1);
- }
- else
- {
- Max7219_DIN(0);
- }
- address<<=1; //左移一位
- Max7219_CLK(1); //時(shí)鐘上升沿,發(fā)送地址
- }
- //發(fā)送數(shù)據(jù)
- for (i=0;i<8;i++)
- {
- Max7219_CLK(0);
- if((dat&0x80))
- {
- Max7219_DIN(1);
- }
- else
- {
- Max7219_DIN(0);
- }
- dat<<=1;
- Max7219_CLK(1); //時(shí)鐘上升沿,發(fā)送數(shù)據(jù)
- }
- Max7219_CS(1); //發(fā)送結(jié)束,上升沿鎖存數(shù)據(jù)
- }
- //MAX7219初始化,設(shè)置MAX7219內(nèi)部的控制寄存器
- void Max7219Init(void)
- {
- MAX7912_GPIO_Config();
- Write7219(SHUT_DOWN,0x01); //開(kāi)啟正常工作模式(0xX1)
- Write7219(DISPLAY_TEST,0x00); //選擇工作模式(0xX0)
- Write7219(DECODE_MODE,0xff); //選用全譯碼模式
- Write7219(SCAN_LIMIT,0x07); //8只LED全用
- Write7219(INTENSITY,0x04); //設(shè)置初始亮度
- }
復(fù)制代碼
【必讀】版權(quán)免責(zé)聲明
1、本主題所有言論和內(nèi)容純屬會(huì)員個(gè)人意見(jiàn),與本論壇立場(chǎng)無(wú)關(guān)。2、本站對(duì)所發(fā)內(nèi)容真實(shí)性、客觀性、可用性不做任何保證也不負(fù)任何責(zé)任,網(wǎng)友之間僅出于學(xué)習(xí)目的進(jìn)行交流。3、對(duì)提供的數(shù)字內(nèi)容不擁有任何權(quán)利,其版權(quán)歸原著者擁有。請(qǐng)勿將該數(shù)字內(nèi)容進(jìn)行商業(yè)交易、轉(zhuǎn)載等行為,該內(nèi)容只為學(xué)習(xí)所提供,使用后發(fā)生的一切問(wèn)題與本站無(wú)關(guān)。 4、本網(wǎng)站不保證本站提供的下載資源的準(zhǔn)確性、安全性和完整性;同時(shí)本網(wǎng)站也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的損失或傷害。 5、本網(wǎng)站所有軟件和資料均為網(wǎng)友推薦收集整理而來(lái),僅供學(xué)習(xí)用途使用,請(qǐng)務(wù)必下載后兩小時(shí)內(nèi)刪除,禁止商用。6、如有侵犯你版權(quán)的,請(qǐng)及時(shí)聯(lián)系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|