请选择 进入手机版 | 继续访问电脑版

基于SPI/IIC接口的OLED数据显示

[复制链接]
陈雪霜 发表于 2021-1-1 09:59:34 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
基于SPI/IIC接口的OLED数据显示



一、显示自己的学号和姓名

1、下载代码

在官网上下载显屏步调
毗连: 显屏步调.

下载事后,打开内里的0.96inch_OLED_Demo_STM32F103ZET6_Hardware_4-wire_SPI工程

根据步调给出的接线规则,将STM32开辟板与芯片举行毗连

2、更改代码

在原工程上对代码举行更改,在test.c文件中,改为自己的名字和学号。此中GUI_ShowCHinese函数和GUI_ShowString函数分别显示的是名字和学号。而别的的函数需要注释掉。

在main.c主函数中,只需调用这两个函数就行了,别的的全部注释掉。

3、添加名字字模

包含字模的文件,首先将其添加到Keil步调中

根据字模算法,算出自己名字的字模,添加到oledfont.h文件中

编译步调,正确。

将生成的.hex文件举行烧录。在芯片上显示的效果如下:

二、显示AHT20的温度和湿度

在上面的步调中,在USER中,添加如下文件

bsp_i2c.c
[code]#include "bsp_i2c.h"#include "delay.h"uint8_t   ack_status=0;uint8_t   readByte[6];uint8_t   AHT20_status=0;uint32_t  H1=0;  //Humilityuint32_t  T1=0;  //Temperatureuint8_t  AHT20_OutData[4];uint8_t  AHT20sendOutData[10] = {0xFA, 0x06, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF};void IIC_Init(void){                                                     GPIO_InitTypeDef GPIO_InitStructure;        RCC_APB2PeriphClockCmd(        RCC_APB2Periph_GPIOB, ENABLE );                           GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //ÍÆÍìÊä³ö        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        GPIO_Init(GPIOB, &GPIO_InitStructure);         IIC_SCL=1;        IIC_SDA=1; }//²úÉúIICÆðʼÐźÅvoid IIC_Start(void){        SDA_OUT();     //sdaÏßÊä³ö        IIC_SDA=1;                            IIC_SCL=1;        delay_us(4);         IIC_SDA=0;//START:when CLK is high,DATA change form high to low         delay_us(4);        IIC_SCL=0;//ǯסI2C×ÜÏߣ¬×¼±¸·¢ËÍ»ò½ÓÊÕÊý¾Ý }          //²úÉúIICÍ£Ö¹ÐźÅvoid IIC_Stop(void){        SDA_OUT();//sdaÏßÊä³ö        IIC_SCL=0;        IIC_SDA=0;//STOP:when CLK is high DATA change form low to high         delay_us(4);        IIC_SCL=1;         IIC_SDA=1;//·¢ËÍI2C×ÜÏß½áÊøÐźŠ       delay_us(4);                                                                   }//µÈ´ýÓ¦´ðÐźŵ½À´//·µ»ØÖµ£º1£¬½ÓÊÕÓ¦´ðʧ°Ü//        0£¬½ÓÊÕÓ¦´ð³É¹¦u8 IIC_Wait_Ack(void){        u8 ucErrTime=0;        SDA_IN();      //SDAÉèÖÃΪÊäÈë          IIC_SDA=1;delay_us(1);                   IIC_SCL=1;delay_us(1);                 while(READ_SDA)        {                ucErrTime++;                if(ucErrTime>250)                {                        IIC_Stop();                        return 1;                }        }        IIC_SCL=0;//ʱÖÓÊä³ö0                    return 0;  } //²úÉúACKÓ¦´ðvoid IIC_Ack(void){        IIC_SCL=0;        SDA_OUT();        IIC_SDA=0;        delay_us(2);        IIC_SCL=1;        delay_us(2);        IIC_SCL=0;}//²»²úÉúACKÓ¦´ð                    void IIC_NAck(void){        IIC_SCL=0;        SDA_OUT();        IIC_SDA=1;        delay_us(2);        IIC_SCL=1;        delay_us(2);        IIC_SCL=0;}                                                                              //IIC·¢ËÍÒ»¸ö×Ö½Ú//·µ»Ø´Ó»úÓÐÎÞÓ¦´ð//1£¬ÓÐÓ¦´ð//0£¬ÎÞÓ¦´ð                          void IIC_Send_Byte(u8 txd){                            u8 t;                   SDA_OUT();                 IIC_SCL=0;//À­µÍʱÖÓ¿ªÊ¼Êý¾Ý´«Êä    for(t=0;t>7;        txd
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )