F物的自我救赎(笑) 2023-06-29 21:53 采纳率: 73.8%
浏览 26
已结题

如何判断OLED屏幕的原点位置呢,在我输入字符后发现是字符是反向的且屏幕也是反向的,在我发出屏幕倒转180命令后变成下面么样,我想要直接修改屏幕初始化原点坐标

如何判断OLED屏幕的原点位置呢,在我输入字符后发现是字符是反向的且屏幕也是反向的,在我发出屏幕倒转180命令后变成下面么样,我想要直接修改屏幕初始化原点坐标,请问如何修改

img

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-06-30 08:25
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 这篇博客: 备战电赛---赛前:准备篇中的 二、OLED显示(包括字符显示函数、图片显示函数、数字显示函数等): 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      其中包括例程

      /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       /**
        * @brief  OLED显示代码
        * @author Sumjess
        * @retval 
      	  @PS     
        */
      ///////////////////////////////////	
      //////////  引脚连接  /////////////
      //////////	D0   接PG15(SCL)
      //////////	D1   接PG14(SDA)
      //////////	RES  接PG13
      //////////	DC   接PG12
      //////////	CS   接PG11    	
      //////////////////////////////////
      
      //清屏函数,清完屏,整个屏幕是黑色的!和没点亮一样!!!	
      extern void OLED_Clear(void);   //清屏:清空屏幕
      //在指定位置显示一个字符,包括部分字符
      //x:0~127
      //y:0~63
      //mode:0,反白显示;1,正常显示				 
      //size:选择字体 16/12 
      extern void OLED_ShowChar(uint8_t x,uint8_t y,uint8_t chr);  //显示一个字符
      //显示2个数字
      //x,y :起点坐标	 
      //len :数字的位数
      //size:字体大小
      //mode:模式	0,填充模式;1,叠加模式
      //num:数值(0~4294967295);	 	
      extern void OLED_ShowNum(uint8_t x,uint8_t y,uint32_t num,uint8_t len,uint8_t size);   //显示一个数字
      //显示一个字符号串 起始点坐标(x,y),x的范围0~127,y为页的范围0~7*
      extern void OLED_ShowString(uint8_t x,uint8_t y, uint8_t *p);	//显示字符串 
      //画点  点坐标(x,y),x的范围0~127,y为页的范围0~7*
      extern void OLED_Set_Pos(unsigned char x, unsigned char y);  //画一个点
      //显示汉字   起始点坐标(x,y),x的范围0~127,y为页的范围0~7*
      extern void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no); //显示中文 //可参考 https://blog.csdn.net/qq_38351824/article/details/82621675
      /***********功能描述:显示显示BMP图片128×64起始点坐标(x,y),x的范围0~127,y为页的范围0~7*****************/
      extern void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[]);// 显示图片
      
      /*PS:  程序下载后对照实物,一句一句删减函数,观察不同,进行学习即可。
         	OLED_ShowCHinese(63,3,90);//
      		OLED_ShowCHinese(18,0,1);//
      		OLED_ShowCHinese(36,0,2);//
      		OLED_ShowCHinese(54,0,3);//显示汉字,需要的汉字在OLEDFONT.H中添加
      		OLED_ShowCHinese(72,0,4);//
      		OLED_ShowCHinese(90,0,5);//
      		OLED_ShowCHinese(108,0,6);//
      		
      		
      	  OLED_ShowString(0,3,"1.3' OLED TEST");
      		OLED_ShowString(8,2,"sumjess");//x,y,字符号串)
      		
      	  OLED_ShowString(20,4,"2014/05/01"); //
      		
      		OLED_ShowString(0,6,"ASCII:");  //
      		OLED_ShowString(63,6,"CODE:");  //
      		
      		
      		OLED_ShowChar(48,6,t);//显示ASCII字符	 指定位置显示一个字符,包括部分字符//x:0~127//y:0~63
      
      		t++;
      	  if(t>'~')t=' ';
      		OLED_ShowNum(103,6,t,3,16);//显示ASCII字符的码值(x,y,数值,数字位数,字体大小) 
      			
      		delay_ms(1000);
      		*/
      /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月25日
  • 创建了问题 6月29日