历史上的今天
返回首页

历史上的今天

今天是:2025年01月13日(星期一)

正在发生

2021年01月13日 | MSP430 G2553 硬件IIC OLED 单片机 OLED滚动显示

2021-01-13 来源:eefocus

效果:

在这里插入图片描述
在这里插入图片描述

总结:
(1)网上没好用的源码;
(2)SSD1306地址是0X3C,7位地址模式。
(3)G2553手册确实介绍得很好。
(4)SSD1306写入命令顺序:开始信号–>等待UCB0TXIFG–>写入0X3C地址–>等待UCB0TXIFG->写入0X00控制字–>等待UCB0TXIFG–>写入命令字符–>等待UCB0TXIFG–>发送停止信号。
(5)SSD1306写入数据顺序:开始信号–>等待UCB0TXIFG–>写入0X3C地址–>等待UCB0TXIFG->写入0X40控制字–>等待UCB0TXIFG–>写入数据字符–>等待UCB0TXIFG–>发送停止信号。
(6)USCI模块支持的东西不一样:
在这里插入图片描述

IIC通信的细节:
(1)是7位地址,最后一个表示读写,0是主机写入从机,很多器件地址都得考虑一下了。这和软件IIC有很大的区别。
在这里插入图片描述
(2)不需要停止信号,数据线就可以重定义数据流方向。只需要在中途重新发开始信号,然后给的地址最后一位R/W决定一下,数据可以任意方向流动。搞完后还是发停止信号。
在这里插入图片描述
(3)IIC操作模式分为四种:从机发送者角色、从机接受者角色、主机发送者角色、主机接受者角色。
下图中,UCA10 Own addressing mode select是决定7位地址还是10位地址。UCMST Master是决定是从机还是主机。UCMODEx给11是IIC模式。
在这里插入图片描述
下图中UCTR是决定发送者还是接受者的。
在这里插入图片描述
(4)网上程序都使用了中断,好处就是中断处理利于程序健壮性,坏处就是看着有点跳跃,各有各的好吧。
(5)IIC说是能达到100K HZ时钟,但也是做好PCB,走线的线粗+线短,最好加个1K的上拉电阻。我做这个实验用的杜邦线,杜邦线搞的,时钟高了就直接无响应了。
(6)
滚动
http://www.51hei.com/bbs/dpj-180145-1.html
向右滚动显示

#include

#include "oled.h"

#include "bmp.h"

//                  MSP430G2xx3

//                 -----------------

//OLED  |   |   --|RST          XOUT|-

//---   |   |     |                 |

//SDA|<-|---+---->|P1.7/UCB0SDA     |

//   |  |         |                 |

//   |  |         |                 |

//SCL|<-+---------|P1.6/UCB0SCL     |

//   |            |                 |


int main(void)

{


    WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT


    OLED_Init();

    delay_ms(100);

    OLED_DrawBMP(0, 0, 128, 64, BMP1);



    OLED_WrCmd(0x2e);//停止滚动

    OLED_WrCmd(0x26);//0x26向右 0x27向左

    OLED_WrCmd(0x00);//虚拟字节

    OLED_WrCmd(0x00);//起始页

    OLED_WrCmd(0x07);//速度

    OLED_WrCmd(0x07);//中止页

    OLED_WrCmd(0x00);//虚拟字节

    OLED_WrCmd(0xff);//虚拟字节

    OLED_WrCmd(0x2f);//开启滚动


    while (1)

    {



    }

}

(7)控制像素点显示。unsigned char OLED_GRAM[128][8];导致G2553内存瘫痪了,这一点需要使用别的单片机实现,比如MSP430F5529。好像也可以依靠读取SSD1302中的数据,但只有8080接口或者6800接口,详见下面的图,有R/W选择的。
SSD1306通信方式靠硬件选择:
在这里插入图片描述

推荐阅读

史海拾趣

ASM公司的发展小趣事

2013年,ASM公司深圳工厂发生了一次大规模的工人罢工。这次罢工持续了22天,对公司的生产和经营造成了不小的影响。然而,这次罢工也暴露出公司在员工待遇和管理方面存在的问题。为了平息罢工并改善员工关系,ASM公司进行了一系列的改革措施,包括提高员工工资和福利、改善工作环境等。这些改革不仅缓解了员工的不满情绪,也提高了公司的凝聚力和竞争力。

这些故事只是ASM公司发展过程中的一部分,它们反映了公司在不同历史阶段所面临的挑战和机遇,以及公司如何不断调整和创新以适应市场的变化。通过这些故事,我们可以看到ASM公司在电子行业中的成长和发展是一个充满艰辛和奋斗的过程,也是一个不断追求创新和卓越的过程。

Fronter Electronics Co Ltd公司的发展小趣事

进入21世纪后,Fronter电子意识到技术创新的重要性,开始加大在技术研发方面的投入。公司成立了专门的研发团队,致力于IC模块、晶振、滤波器、电感等电子产品的技术开发与升级。同时,Fronter电子积极申请专利,保护自主知识产权,并逐步打造出了自己的品牌“FT”。随着技术实力的增强和品牌知名度的提升,Fronter电子在电子行业中的影响力进一步扩大。

Dynex公司的发展小趣事

随着工业4.0时代的到来,Fronter电子积极响应智能制造的号召,开始引进先进的生产设备和技术,打造智能化生产线。通过实施精益生产和全面质量管理(TQM),Fronter电子实现了生产效率的显著提升和产品质量的持续优化。此外,公司还加大了对环保技术的投入,确保所有产品均符合RoHS、REACH等环保标准。这些努力不仅提升了Fronter电子的市场竞争力,还为其可持续发展奠定了坚实基础。

Cortina Systems Inc公司的发展小趣事

Fronter电子成立于1991年,由一群对电子技术充满热情的创业者共同创立。在公司成立初期,Fronter电子专注于电子元件的代理与销售,通过引进国际知名品牌的产品,如SUNLORD、KDS等,迅速在行业内建立了初步的声誉。公司凭借敏锐的市场洞察力和高效的供应链管理,逐步在电子元器件市场中站稳脚跟。

意瑞(COSEMITECH)公司的发展小趣事

随着技术的不断成熟和产品的不断优化,意瑞半导体的市场影响力逐渐扩大。其高集成度、高性能的芯片广泛应用于国内外主流OEM及全球知名Tier1厂商。在汽车电子领域,公司布局了动力总成、车身控制、电源管理和底盘安全等模块,其产品在多家主机厂成功导入并量产,性能超过了国外老牌芯片,成为该品类中本土鲜有的实现汽车市场大批量出货的产品。

Digital Voice Systems Inc公司的发展小趣事

Digital Voice Systems, Inc.(DVSI)于1988年成立,当时正值数字通信技术的兴起阶段。公司创始人凭借对语音编解码技术的深刻理解和前瞻性的市场洞察力,决定投身于这一领域。他们开发出了具有专利保护的基于鲁棒性多带激励模型(MBE Model)的低码率语音压缩算法,如IMBE和AMBE编解码系统。这些算法在当时的市场上独树一帜,为DVSI赢得了第一桶金。

在创立初期,DVSI面临着资金、技术、市场等多方面的挑战。然而,他们凭借着坚定的信念和不懈的努力,逐步克服了这些困难。他们不断投入研发,优化算法,提高产品的性能和稳定性;同时,他们积极开拓市场,与各大通信设备制造商建立合作关系,将产品推向市场。

随着时间的推移,DVSI的产品逐渐在市场上获得了认可。他们的编解码系统被广泛应用于移动通信、卫星通信、军事通信等领域,为客户提供了高效、稳定的语音通信解决方案。DVSI也因此逐渐崭露头角,成为了电子行业中一颗耀眼的明星。

故事二至五框架概述

  1. 技术创新与突破:DVSI在语音编解码技术方面的持续创新,如推出新一代的高效压缩算法,进一步提升了产品的竞争力。
  2. 市场拓展与国际化:随着公司实力的增强,DVSI开始拓展国际市场,与全球多家知名企业建立合作关系,实现了国际化发展。
  3. 合作与竞争:在电子行业中,DVSI与其他企业的合作与竞争并存。他们通过合作共赢的方式,共同推动行业的发展;同时,也面临着来自竞争对手的挑战和竞争压力。
  4. 企业文化与团队建设:DVSI注重企业文化建设,倡导创新、协作、共赢的价值观。他们注重团队建设,吸引了一批优秀人才加入公司,为公司的发展提供了有力的人才保障。

以上故事和框架概述仅供参考,您可以根据这些线索进一步挖掘和编写关于DVSI公司的故事。

问答坊 | AI 解惑

09年新电子能源-USB充电电池

神奇能源-USB充电电池 形似U盘,实是电池,可以插在电脑USB接口上充电哦                   无须额外配充电器的,还可以给手机充电咧         ...…

查看全部问答>

about IPM

It\'s the base of IPM.…

查看全部问答>

加入你喜欢的设计小组:51或C8051f

目前设计小组凸显了两个设计方案,主要区别是处理器不同,大家赶快投票参与吧!第一组设计简单,使用了大家熟悉的51单片机第二组主要目标就是在利用SHT21的同时,将东西做得小巧,初定为纽扣电池可用USB充电目前在方案选定阶段,我们随后会公布最小 ...…

查看全部问答>

请教LCD驱动问题-----急!!!!

简介: 做一个2440上LCD的驱动 原来平台上用的LCD型号为:WXCAT35 现在由于出货问题换了一款替代的LCD,型号为:NMA35QV65 问题描述: 看这两款屏的资料发现,硬件引脚定义完全一样,但资料上都介绍需要加一个驱动ICHX8238 , 该驱动IC与处理 ...…

查看全部问答>

Multi-bin启动不正常,紧急求救!谢谢各位!

以下是打印信息(正常的话,后面应该是RTC的打印信息,但现在到这里就进行不下去了): Windows CE Kernel for ARM (Thumb Enabled) Built on May  6 2008 at 19:46:56 ProcessorType=0b76  Revision=6 OEMAddressTable = 8 ...…

查看全部问答>

怎样对iic设备读写数据??

想问一下有过iic经验的高手们,iic设备可以通过writefile和readfile来收发数据吗?还是要用deviceiocontrol?谢谢…

查看全部问答>

linux驱动编程的一下问题,有关驱动与应用通信和驱动内部多进程

一直被几个问题困扰,不得其解,请各位给解答下吧,非常感谢。 1、linux的设备驱动程序内部能否支持多进程?比如fork、execlp之类的系统调用能用吗?如果能用要怎么实现? 2、如何在驱动程序内部执行shell脚本命令? 3、驱动与应用程序的通信方 ...…

查看全部问答>

高手帮我看看为什么进不了中断

#include <msp430x14x.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; TACTL = TASSEL0 + TACLR; CCTL0 = CCIE; CCR0 = 16384; ...…

查看全部问答>

求高手:make menuconfig 出错

已经安装arm-linux-gcc-4.1.2。在对linux-2.6.31进行内核编译时,使用到“make manuconfig”命令,但是出错了!出错提示信息如下: HOSTCC scripts/basic/fixdep/usr/local/libexec/gcc/i686-pc-linux-gnu/4.6.1/cc1:error while loading shared li ...…

查看全部问答>

哎!最近公司网络抓的紧啊!

有一个来月了!公司把网络禁的很严!网购的都禁掉,视频这些跑不了了! …

查看全部问答>