12864 OLED屏幕 的例程永远从第1列而不是第0列开始的问题

注意,TB上卖的12864,商家会提供例程,最近发现其中一个版本的例程存在问题

显示16*16点阵的字符,一行128像素,正好显示8个。

但是使用商家提供的例程,当你设置从第0行0列显示,每行的字符却都是从第1列开始,而不是从第0列

问题出在下面的代码中

void OLED_Set_Pos(uint8_t Row,uint8_t Cal) 
{ 
	OLED_WR_Byte(0xB0+Row,OLED_CMD);//设置行
	OLED_WR_Byte(((Cal&0xF0)>>4)|0x10,OLED_CMD);//设置列高字节
	OLED_WR_Byte((Cal&0x0F)|0x01,OLED_CMD);//设置列低字节
}   	

设置列低字节这里 (Cal&0x0F)|0x01 中的|0x01是多余的,会导致你设置第0列时,写入的列低字节的数据最低位永远都是1

把这个|0x01删除即可

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值