基于MSP432E401y-IIC的OLED控制

首先要知道IIC的原理:IIC基本原理

 基于IIC的原理配置OLED源文件

#define OLED_SCLK_Clr()  MAP_GPIOPinWrite(GPIO_OLED_SCLK_PORT_BASE,GPIO_OLED_SCLK_PIN,0)    //OLED_SCL=0
#define OLED_SCLK_Set()  MAP_GPIOPinWrite(GPIO_OLED_SCLK_PORT_BASE,GPIO_OLED_SCLK_PIN,0xFF) //OLED_SCL=1

#define OLED_SDIN_Clr()  MAP_GPIOPinWrite(GPIO_OLED_DAT_PORT_BASE,GPIO_OLED_DAT_PIN,0)     //OLED_SDIN=0
#define OLED_SDIN_Set()  MAP_GPIOPinWrite(GPIO_OLED_DAT_PORT_BASE,GPIO_OLED_DAT_PIN,0xFF) //OLED_SDIN=1;

void delay_ms(unsigned int ms)
{
    unsigned int a;
    while (ms)
    {
        a = 1800;
        while (a--)
            ;
        ms--;
    }

}
//发送一个字节
//向SSD1306写入一个字节。
//mode:数据/命令标志 0,表示命令;1,表示数据;


void IIC_Start()
{

    OLED_SCLK_Set() ;
    OLED_SDIN_Set();
    OLED_SDIN_Clr();
    OLED_SCLK_Clr();
}

void IIC_Stop()
{
    OLED_SCLK_Set() ;
//  OLED_SCLK_Clr();
    OLED_SDIN_Clr();
    OLED_SDIN_Set();

}
void IIC_Wait_Ack()
{
    OLED_SCLK_Set() ;
    OLED_SCLK_Clr();
}
void Write_IIC_Byte(unsigned char IIC_Byte)
{
    unsigned char i;
    unsigned char m,da;
    da=IIC_Byte;
    OLED_SCLK_Clr();
    for(i=0;i<8;i++)
    {
            m=da;
        //  OLED_SCLK_Clr();
        m=m&0x80;
        if(m==0x80)
        {OLED_SDIN_Set();}
        else OLED_SDIN_Clr();
            da=da<<1;
        OLED_SCLK_Set();
        OLED_SCLK_Clr();
     }
}
void Write_IIC_Command(unsigned char IIC_Command)
{
   IIC_Start();
   Write_IIC_Byte(0x78);            //Slave address,SA0=0
    IIC_Wait_Ack();
   Write_IIC_Byte(0x00);            //write command
    IIC_Wait_Ack();
   Write_IIC_Byte(IIC_Command);
    IIC_Wait_Ack();
   IIC_Stop();
}
void Write_IIC_Data(unsigned char IIC_Data)
{
   IIC_Start();
   Write_IIC_Byte(0x78);            //D/C#=0; R/W#=0
    IIC_Wait_Ack();
   Write_IIC_Byte(0x40);            //write data
    IIC_Wait_Ack();
   Write_IIC_Byte(IIC_Data);
    IIC_Wait_Ack();
   IIC_Stop();
}
void OLED_WR_Byte(unsigned dat,unsigned cmd)
{
    if(cmd)
     {

         Write_IIC_Data(dat);

        }
    else {
         Write_IIC_Command(dat);

    }


}

头文件:

#define OLED_ADDRESS 0x3C //通过调整0R电阻,屏可以0x78和0x7A两个地址 -- 默认0x78  0x3C = 0x78 >> 1
#define GPIO_OLED_DAT_PORT_BASE     GPIO_PORTG_BASE  //OLED屏D1连接端口
#define GPIO_OLED_DAT_PORT_SYSCTL   SYSCTL_PERIPH_GPIOG
#define GPIO_OLED_DAT_PIN           GPIO_PIN_0

#define GPIO_OLED_SCLK_PORT_BASE    GPIO_PORTG_BASE  //OLED屏D0连接端口
#define GPIO_OLED_SCLK_PORT_SYSCTL  SYSCTL_PERIPH_GPIOG
#define GPIO_OLED_SCLK_PIN          GPIO_PIN_1

#define  u8 unsigned char
#define  u32 unsigned int
#define OLED_CMD  0 //写命令
#define OLED_DATA 1 //写数据
//OLED模式设置
//0:4线串行模式
//1:并行8080模式
//此项目程序使用的是串行模式
#define OLED_MODE 0

#define SIZE 16
#define XLevelL     0x02
#define XLevelH     0x10
#define Max_Column  128
#define Max_Row     64
#define Brightness  0xFF
#define X_WIDTH     128
#define Y_WIDTH     64

其他配置只需简单更改即可。

源码链接:https://pan.baidu.com/s/15EMWsgLai3qLiutOvFJYmQ 
提取码:1111 
 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: MSP432E401Y是一款高性能的低功耗微控制器,适用于各种嵌入式应用。学习MSP432E401Y可以使我们了解到如何开发和设计各种应用程序。 首先,我们可以学习MSP432E401Y的架构和硬件功能。该微控制器具有强大的处理能力和多种接口,包括串口、SPI、I2C和GPIO,可以与其他外部设备进行通信。此外,它还具有LCD控制器和触摸屏接口,方便我们与用户界面进行交互。 其次,我们可以学习如何使用MSP432E401Y进行编程。它支持多种编程语言,如C和汇编语言,并提供了丰富的软件开发工具和库,如代码编辑器、编译器和调试器。通过学习如何编写代码并调试程序,我们可以实现各种功能,如控制外部设备、处理数据和实现算法。 另外,学习MSP432E401Y还可以了解到如何进行电源管理和低功耗设计。它具有多种节能模式,可以根据应用需求进行灵活配置,从而延长电池寿命和降低功耗。此外,它还支持外部功耗管理接口,可以与其他电源管理器件进行通信,实现更高效的功耗管理。 最后,通过学习MSP432E401Y的应用案例和开发方案,我们可以掌握如何将它应用于实际项目中。无论是物联网、智能家居还是工业自动化,MSP432E401Y都可以为我们提供强大且可靠的解决方案。 总之,学习MSP432E401Y可以让我们掌握嵌入式系统设计和开发领域的知识和技能,为我们未来的职业发展和创新提供了基础。 ### 回答2: MSP432E401Y是一款现代微控制器,由德州仪器(Texas Instruments)公司设计和生产。它基于Cortex-M4内核,并具备低功耗特性。那么,如何进行MSP432E401Y的学习呢? 首先,要深入了解MSP432E401Y的硬件特性和技术规格。可以查阅官方文档和技术手册,并关注官方社区和论坛,以便获取更多有关该微控制器的信息。 其次,熟悉MSP432E401Y的软件开发环境。Texas Instruments提供了MSP432软件开发工具包(SDK)和集成开发环境(IDE)。学习使用这些工具,编写、调试和测试MSP432E401Y的应用程序。可以通过阅读相关文档和教程,动手实践来提高自己的技能。 与此同时,可以尝试各种不同的实际应用场景。可以选择一些简单的项目,并逐步增加复杂度。通过实践深入了解如何使用MSP432E401Y来解决不同类型的问题。 此外,参与社区和论坛活动也是学习MSP432E401Y的好方式。与其他开发者分享经验和知识,提出问题并讨论解决方案。 最后,不断学习并保持热情。MSP432E401Y是一款功能强大且灵活的微控制器,但要掌握它需要持续的学习和实践。通过不断挑战自己,研究新的应用和技术,可以不断提升自己的技能水平。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sunxinuai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值