日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

7、ARM嵌入式系统:LCD/数码管/OLED初始化

發布時間:2023/12/8 windows 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 7、ARM嵌入式系统:LCD/数码管/OLED初始化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、LCD/數碼管模塊在板子上的位置

LCD和數碼管在板子上都分別有一個插槽。

二、LCD/數碼管初始化代碼

//SMG init

void SMG_Init()

{

? ? ? ? /* PORTB and PORTD clock have already enabled*/

? ? ? ? SIM_SCGC5|=SIM_SCGC5_PORTB_MASK+SIM_SCGC5_PORTD_MASK; ? ? ? ? ?

? ? ? ?

? ? ? ? /*portB ?set to GPIO*/ ? ? ?

? ? ? ? PORTB_PCR0=PORT_PCR_MUX(0X1);

? ? ? ? PORTB_PCR1=PORT_PCR_MUX(0X1);

? ? ? ? PORTB_PCR2=PORT_PCR_MUX(0X1);

? ? ? ? PORTB_PCR8=PORT_PCR_MUX(0X1);

? ? ? ? PORTB_PCR9=PORT_PCR_MUX(0X1);

? ? ? ? PORTB_PCR10=PORT_PCR_MUX(0X1);

? ? ? ?

? ? ? ? /*portD ?set to GPIO*/ ? ? ?

? ? ? ? PORTD_PCR0=PORT_PCR_MUX(0X1);

? ? ? ? PORTD_PCR1=PORT_PCR_MUX(0X1);

? ? ? ? PORTD_PCR2=PORT_PCR_MUX(0X1);

? ? ? ? PORTD_PCR3=PORT_PCR_MUX(0X1);

? ? ? ? PORTD_PCR4=PORT_PCR_MUX(0X1);

? ? ? ? PORTD_PCR5=PORT_PCR_MUX(0X1);

? ? ? ? PORTD_PCR6=PORT_PCR_MUX(0X1);

? ? ? ? PORTD_PCR7=PORT_PCR_MUX(0X1);

? ? ? ?

? ? ? ? /*LED control pin set to out*/ ? ? ?

? ? ? ? GPIOB_PDDR|=GPIO_PDDR_PDD(GPIO_PIN(0)|GPIO_PIN(1)|GPIO_PIN(2)|GPIO_PIN(8)|GPIO_PIN(9)|GPIO_PIN(10));

? ? ? ?

? ? ? ? /*LED bit pin set to out*/ ? ?

? ? ? ? // 1 ?Pin is configured as general-purpose output, for the GPIO function.

? ? ? ? // PDDR配置輸入或者輸出,PDOR配置值

? ? ? ? GPIOD_PDDR|=0x000000FF; ? ?

? ? ? ?

? ? ? ? /*LED control pin set to high ,LEDs are closed*/

? ? ? ? GPIOB_PDOR|=GPIO_PDDR_PDD(GPIO_PIN(0)|GPIO_PIN(1)|GPIO_PIN(2)|GPIO_PIN(8)|GPIO_PIN(9)|GPIO_PIN(10)); ? ? ? ?

? ? ? ?

? ? ? ? /*LED bit pin set to low ,LED bit are all lighted,change GPIOC_PDOR register can change the number it shows*/

? ? ? ? GPIOD_PDOR=0xAA; ? ? ? ?

? ? ? ?

// ? ? ?/*LED control pin set to low ,LEDs are all open*/

? ? ? ? GPIOB_PDOR&=~GPIO_PDDR_PDD(GPIO_PIN(0)|GPIO_PIN(1)|GPIO_PIN(2)|GPIO_PIN(8)|GPIO_PIN(9)|GPIO_PIN(10));

}

三、初始化過程

LCD/數碼管在板子上涉及PORTB和PORTD兩個管腳。

?step1:使能PORTB和PORTD這兩個引腳的時鐘

SIM_SCGC5|=SIM_SCGC5_PORTB_MASK+SIM_SCGC5_PORTD_MASK;

step2:PORTB管腳配置給GPIO用

?? ? ? ? PORTB_PCR0=PORT_PCR_MUX(0X1);

? ? ? ? PORTB_PCR1=PORT_PCR_MUX(0X1);

? ? ? ? PORTB_PCR2=PORT_PCR_MUX(0X1);

? ? ? ? PORTB_PCR8=PORT_PCR_MUX(0X1);

? ? ? ? PORTB_PCR9=PORT_PCR_MUX(0X1);

? ? ? ? PORTB_PCR10=PORT_PCR_MUX(0X1);

step3:PORTD管腳配置給GPIO用

? ? ? ? /*portD ?set to GPIO*/ ? ? ?

? ? ? ? PORTD_PCR0=PORT_PCR_MUX(0X1);

? ? ? ? PORTD_PCR1=PORT_PCR_MUX(0X1);

? ? ? ? PORTD_PCR2=PORT_PCR_MUX(0X1);

? ? ? ? PORTD_PCR3=PORT_PCR_MUX(0X1);

? ? ? ? PORTD_PCR4=PORT_PCR_MUX(0X1);

? ? ? ? PORTD_PCR5=PORT_PCR_MUX(0X1);

? ? ? ? PORTD_PCR6=PORT_PCR_MUX(0X1);

? ? ? ? PORTD_PCR7=PORT_PCR_MUX(0X1);

?

step4:PORTB的6個管腳GPIO配置為輸出模式

GPIOB_PDDR|=GPIO_PDDR_PDD(GPIO_PIN(0)|GPIO_PIN(1)|GPIO_PIN(2)|GPIO_PIN(8)|GPIO_PIN(9)|GPIO_PIN(10));

?step5:PORTD的8個管腳GPIO配置為輸出模式,即低8個bit設置為1

GPIOD_PDDR|=0x000000FF;

step6:配置PORTB 6個管腳的電平值為1,即關閉LED燈

該寄存器配置每個通用輸出管腳上驅動的邏輯電平,將6個管腳的電平值配置為1,即關閉這6個LED燈。

GPIOB_PDOR|=GPIO_PDDR_PDD(GPIO_PIN(0)|GPIO_PIN(1)|GPIO_PIN(2)|GPIO_PIN(8)|GPIO_PIN(9)|GPIO_PIN(10));

?step7:配置PORTD 8個管腳的電平值

GPIOD_PDOR=0xAA;

0xAA的二進制值為10101010,即引腳0,2,4,6引腳為0,打開這4個引腳的LED燈;1,3,5,7引腳的為1,關閉這4個引腳的LED燈。

step8:配置PORTB的6個引腳,打開6個LED燈

GPIOB_PDOR&=~GPIO_PDDR_PDD(GPIO_PIN(0)|GPIO_PIN(1)|GPIO_PIN(2)|GPIO_PIN(8)|GPIO_PIN(9)|GPIO_PIN(10));

即設置這6個引腳的值為0.

8、ARM嵌入式系統:UART初始化_cyf31的專欄-CSDN博客

總結

以上是生活随笔為你收集整理的7、ARM嵌入式系统:LCD/数码管/OLED初始化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。