将十进制数转化为二进制并在OLED屏幕上显示
直接上代码:
//显示二进制小数
//x,y为坐标 Num为想要转换的数(可以是十进制,也可以是十六进制)
//len为想要转换的二进制的位数 size为字体大小
void OLED_ShowBin(u8 x,u8 y,u16 Num,u8 len,u8 size)
{
u16 i = 1u << len-1; //左移len-1位
u8 j;
for ( ; i ; i >>= 1)
{
OLED_ShowChar(x+(size/2)*j,y,(Num&i?1:0)+'0',size); //OLED_ShowChar为打印字符函数一般库里面都有
j++;
}
}
主函数:
void main()
{
SysTick_Init(72); //系统初始化
OLEDD_Init(); //OLED初始化
OLED_On();
OLED_Clear();
while(1)
{
OLED_ShowBin(10,0,0xff,8,16); //显示十六进制数
OLED_ShowBin(10,2,96,8,16); //显示十进制数
}
}
实验现象:
希望对有需要的人有所帮助。