当前位置:网站首页>Utilisation de l'écran OLED

Utilisation de l'écran OLED

2022-07-06 20:22:00 Kshine2017

1. 0.96Pouces7PinOLEDÉcran

  • La partie manquante du texte dans l'image est due à la photo du téléphone,En fait, c'est le texte complet.
  • Liens de référence:
    https://wenku.baidu.com/view/eb67b928b91aa8114431b90d6c85ec3a87c28b86.html
    https://wenku.baidu.com/view/11e968518d9951e79b89680203d8ce2f00666590.html
  • Explication des broches:
GND  GND
VDD  VCC    3.3V~5V
PE5    D0     CLKInformations sur l'horloge(SCL)      SPI_CLK
PE6    D1     Port de données(SDA)         SPI_MOSI
PE7    RES    Réinitialiser                    FréquentIO
PE8    DC     Données/Sélection des commandes(D/C)      FréquentIO
PE9    CS     Sélection de films,Faible niveau actif        SPI_CS

Veuillez ajouter une description de l'image

  • La méthode de sélection de la résistance est la suivante,Correspondant à4LigneSPI.
    Insérer la description de l'image ici
  • IOSimulation4LigneSPI,DriveOLED
void MX_GPIO_Init(void)
{
    

  GPIO_InitTypeDef GPIO_InitStruct = {
    0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOD_CLK_ENABLE();
  __HAL_RCC_GPIOA_CLK_ENABLE();
	
  GPIOA->BSRR = OLED_DC_Pin;
	GPIOA->BSRR = OLED_RES_Pin;
	GPIOA->BSRR = GPIO_PIN_5;//SCKRalph!
	GPIOA->BSRR = GPIO_PIN_7;//Ralph!
	//CS Les broches sont connectées directement GND
	
	
	GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;

  GPIO_InitStruct.Pin = OLED_DC_Pin|OLED_RES_Pin;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

	GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_7;
	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
	HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}

#define MOSI_H GPIOA->BSRR = GPIO_PIN_7 //HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_SET) //
#define MOSI_L GPIOA->BRR = GPIO_PIN_7 //HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_RESET) //
#define SCK_H GPIOA->BSRR = GPIO_PIN_5 //HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET) //
#define SCK_L GPIOA->BRR = GPIO_PIN_5 //HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET) //

//#define MISO 
#define NSS_H 
#define NSS_L 

void delayUS(uint32_t nus)
{
    		
  uint16_t i;
	for(i=0;i<nus;i++)
	{
    
	} 
}


//Peut être utiliséSPIDe la façon dont HAL_SPI_Transmit(&hspi1,&data,1,1);
void My_SPI_Transmit(unsigned char data)
{
    

	unsigned char i;	        //Définir les variables
	for(i = 0; i < 8; i++)	        //Cycle8Une fois
	{
    
		SCK_L;
        delayUS(1);			
	    if(data&0x80)
		    MOSI_H;
		else
			  MOSI_L;
		data<<=1;
		delayUS(1);	
		SCK_H;
		delayUS(1);	
		}
	
}


  • Mesure réelle,Le micro - ordinateur à puce unique fonctionne72MHzDans le cas de,Ci - dessusMy_SPI_Transmit La fonction prend environ 76.4Microsecondes.
    Insérer la description de l'image ici

  • Fichier pilote
    https://download.csdn.net/download/Kshine2017/85519013

原网站

版权声明
本文为[Kshine2017]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207061224354440.html