首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

刚开始接触代码,寻求MC33972或MC33993的驱动程序以借鉴!

刚开始接触代码,寻求MC33972或MC33993的驱动程序以借鉴!

    我刚刚接触写代码,现在要编33972的驱动程序,片子的工作原理已经懂了,只是不知道怎么写驱动,不知道怎么入门,想找个972的驱动看看,参考一下,哪位好心人有帮帮忙吧!十分感激!!谢谢!

谢谢zhwdy81! 我还有些不明白!

zhwdy81,我看了你的33993的程序,有一点还是不懂,就是spi进行读写时不是很明白:
SPDR = data1; // 发送第一字节
while((SPSCR&0x80)==0); // 等待接收寄存器满
SP_status.Byte = SPDR; // 读取 状态
SPDR = data2; // 发送第二字节
while((SPSCR&0x80)==0); // 等待接收寄存器满
SGh_status.Byte = SPDR; // 读取 状态
SPDR = data3; // 发送第三字节
while((SPSCR&0x80)==0); // 等待接收寄存器满
SGl_status.Byte = SPDR; // 读取 状态

SP_status.Byte=SP_status.Byte<<2;
SP_status.Bit.BIT0=SGh_status.Bit.BIT6;
SP_status.Bit.BIT1=SGh_status.Bit.BIT7;
SGh_status.Bit.BIT6=0;
SGh_status.Bit.BIT7=0;
对于上段程序不是很明白,尤其是下面的部分,能否解释一下呢,谢谢! 还有你的程序没有涉及到时钟以及spi寄存器主从设置的问题,在这里不用设置吗?还有你上面的程序是从哪到哪得读写呢? 由33972到主单片机还是由单片机到33972呢?
还有一点,我现在用gz60作主单片机,其中有几个设备要通过spi与gz60通信,而这几个设备分别用不同的io口代替cs\选通,那我还能用spi的寄存器吗,如果不能用的话我刚如何处理呢?希望给与答复,谢谢![em24][em24]

zhwdy81!谢谢你的回复,对spi通信我还是不很明白!

对于spi数据的收发读取我还是不明白,你的初始化寄存器里对寄存器都定义了,但是对于最后的SO Response Will Always Send 没有定义阿,是不是不用定义呢还是什么其它的原因? 我对spi通信还是比较模糊,spi通信时,一些参数不用提前初始化吗?spcr、spscr、spdr这三个寄存器都不用设置吗?
还有一点,我的用多个io口选通各个spi从设备,有人说就不能用spi的寄存器了,只能通过软件按照时钟电平高低,根据高电平收低电平发或低电平收高电平发的时序,一位一位的传输数据是这样子的吗?
忘回复!谢谢! 请问您有MSN吗?那样我可以直接根您探讨了!谢谢![em19][em19]

我看了GZ60的资料了!

我看gz60的资料了,只不过是,我现在不是只有一个从设备,而是有多个从设备都要用spi通信,我用io口选通每个从设备,这样的话只要有cs低,CS低然后在clk的上升沿和下降沿写入和读取数据,在cs高电平停止, 现在我只有一个用cs选通,其余的都用io口选通,这样的话,用spi寄存器是自动发送,cs不用人操作,那我的其他从设备怎么工作? 这样不就不能用寄存器设置了,直接按照spi的工作时序来写代码,是不是这样啊?哪位高人指点一下!!万分感激!!
[em19][em19][em24][em24]
我硬件设计里用了主设备的ss脚,用它选通一个从设备,其他的从设备都用普通io口选通,那我把主设备的SS作为普通io口用然后选通从设备可以吗? 如果用多个io口选通从设备,那通信的时候,spi的寄存器还可不可以用呢?
to:strongchen
“如果是多个从设备的话,那么每个从设备的/SS脚都应有一个IO口来控制。主设备的/SS脚必须维持高电平或作为普通IO口使用,不能用来选通某个从设备。”
你说每个从设备的ss脚应有一个io口控制,主设备的ss要维持在高电平或用作io口,不能选通从设备,既然主设备的ss可能用作普通io了,那当然可以用它来选通某个从设备了,是不是这样呢,版主说的是不是矛盾了呢? 谢谢回复!
与spi的联系断开,可以这样用吧,是吗?把ss作为普通io口用来选通一个从设备,根用其他io选通其他从设备一样,是不是这样呢?
恩,知道的,谢谢版主!呵呵
返回列表