新聞中心
隨著近些年的電子科技的發(fā)展,數(shù)碼管變得越來越出色。它們是電子技術(shù)領(lǐng)域中使用最廣泛的元器件,在很多產(chǎn)品中發(fā)揮著重要作用。為了讓數(shù)碼管功能正常運行,必須對其進(jìn)行驅(qū)動。因此,linux下的數(shù)碼管驅(qū)動程序這么重要。

要實現(xiàn)Linux下數(shù)碼管驅(qū)動程序,首先實用C語言編寫一個簡單的程序,根據(jù)數(shù)碼管的連線實現(xiàn)驅(qū)動程序,可以選擇使用GPIO引腳或借助外部芯片形成I / O端口來連接數(shù)碼管。
以stm32為例,實現(xiàn)數(shù)碼管的驅(qū)動程序的第一步是定義IO口,這時可以在“stm32f10x.h”里面導(dǎo)出對應(yīng)的IO口寄存器:
#define GPIOA * ( ( volatile unsigned int * ) 0x40010800)
#define GPIOB * ( ( volatile unsigned int * ) 0x40010C00)
#define GPIOC * ( ( volatile unsigned int * ) 0x40011000)
接著需要定義數(shù)碼管所需要的引腳,如下:
#define GPIO_CE GPIOA , 0x0008 , 0x0001
#define GPIO_CLK GPIOA , 0x000C , 0x0002
#define GPIO_DA GPIOC , 0x0010 , 0x0008
它們分別指向?qū)?yīng)IO口和位。
最后,將上一步定義的IO口和位用GPIO函數(shù)編寫下視數(shù)碼管操作函數(shù),如下所示:
void LED_Write_data(unsigned char LED_DATA,unsigned char command)
{
//延時
delay(1);
//拉低CE
GPIO_WriteBit(GPIO_CE, 0 )
//CLK延時
delay(1);
//先傳入發(fā)送命令,指定發(fā)送數(shù)據(jù)
GPIO_WriteBit(GPIO_DA,command);
//拉高CLK
GPIO_WriteBit(GPIO_CLK,1);
//CLK延時
delay(1);
//再傳入發(fā)送數(shù)據(jù)
for (unsigned char i=0 ;i
{
GPIO_WriteBit (GPIO_DA,LED_DATA & 0x80);
//延時
delay(1);
//拉高CLK
GPIO_WriteBit(GPIO_CLK,1 );
//拉低CLK
GPIO_WriteBit(GPIO_CLK,0 );
//延時
delay(1);
LED_DATA = LED_DATA
}
//最后拉高CE管腳
GPIO_WriteBit(GPIO_CE,1);
}
執(zhí)行上面定義的函數(shù),可以操作數(shù)碼管,可以在數(shù)碼管上顯示相應(yīng)數(shù)據(jù)。
總之,實現(xiàn)Linux下的數(shù)碼管驅(qū)動程序需要幾個步驟。首先要定義IO口和位,然后使用GPIO函數(shù)編寫數(shù)碼管操作函數(shù)。最后,執(zhí)行相應(yīng)的程序就可以在數(shù)碼管上顯示相應(yīng)數(shù)據(jù)了。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
分享文章:Linux下數(shù)碼管驅(qū)動程序?qū)崿F(xiàn)(linux數(shù)碼管驅(qū)動)
URL分享:http://www.dlmjj.cn/article/dpijeoo.html


咨詢
建站咨詢
