智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 18126|回复: 67
打印 上一主题 下一主题

MC9S12DG128系列例程--SPI

  [复制链接]

80

主题

1045

帖子

0

精华

跨届大侠

北京龙邱智能科技有限公司

Rank: 10Rank: 10Rank: 10

积分
10332

论坛元老奖章

QQ
威望
2905
贡献
6151
兑换币
4515
注册时间
2008-6-7
在线时间
638 小时
跳转到指定楼层
1#
发表于 2008-11-29 06:48:32 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
<>/**************************************************************************************<BR>龙丘MC9S12(DG128)多功能开发板 <BR>Designed by Chiu Sir<BR>E-mail:chiusir@163.com<BR>软件版本:V1.1<BR>最后更新:2008年11月28日<BR>相关信息参考下列地址:<BR>博客:&nbsp; <A target=_blank href="http://longqiu.21ic.org/">http://longqiu.21ic.org</A><BR>淘宝店:<A target=_blank href="http://shop36265907.taobao.com/">http://shop36265907.taobao.com</A><BR>------------------------------------<BR>Code Warrior 4.6<BR>Target : MC9S12DG128B<BR>Crystal: 16.000Mhz<BR>busclock: 8.000MHz<BR>pllclock:16.000MHz</P><P>本程序主要包括以下功能:<BR>1.设置锁相环和总线频率;<BR>2.初始化SPI为400kbps;<BR>3.SPI读函数和写函数。<BR>*****************************************************************************************/<BR>#include &lt;hidef.h&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* common defines and macros */<BR>#include &lt;mc9s12dg128.h&gt;&nbsp;&nbsp;&nbsp;&nbsp; /* derivative information */<BR>#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"</P><P>//----------------------------------------------------- <BR>//延时1毫秒 <BR>void Dly_ms(int ms)<BR>{<BR>&nbsp;&nbsp; int ii,jj;<BR>&nbsp;&nbsp; if (ms&lt;1) ms=1;<BR>&nbsp;&nbsp; for(ii=0;ii&lt;ms;ii++)<BR>&nbsp;&nbsp;&nbsp;&nbsp; for(jj=0;jj&lt;2670;jj++);&nbsp;&nbsp;&nbsp; //busclk:16MHz--1ms<BR>}<BR>//-----------------------------------------------------&nbsp;&nbsp; <BR>//SPI写一个字节<BR>void SPI_Write_Byte(U8 val)<BR>{<BR>&nbsp;SPI0DR = val;<BR>&nbsp;while(!(SPI0SR_SPIF));<BR>&nbsp;return;<BR>}<BR>//----------------------------------------------------- <BR>//SPI读一个字节 <BR>U8 SPI_Read_Byte(void)<BR>{ &nbsp;<BR>&nbsp;while(!(SPI0SR_SPIF));<BR>&nbsp;return SPI0DR;<BR>}<BR>//----------------------------------------------------- <BR>//SPI初始化,速率400kbps <BR>void SPI_Init(void) <BR>{<BR>&nbsp; DDRT = 0xff;<BR>&nbsp; MODRR&nbsp;&nbsp; = 0x00;&nbsp; <BR>&nbsp; SPI0CR2 = 0x10;<BR>&nbsp; SPI0CR1 = 0x5e;&nbsp;&nbsp; <BR>&nbsp; SPI0BR&nbsp; = 0x42; //BR=busclk/((SPPR + 1)· 2^(SPR + 1))=16000/(5*8)=400k&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>}<BR>//----------------------------------------------------- <BR>//总线频率为16M <BR>void setbusclock(void)<BR>{&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; CLKSEL=0X00;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //disengage PLL to system<BR>&nbsp;&nbsp;&nbsp; PLLCTL_PLLON=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //turn on PLL<BR>&nbsp;&nbsp;&nbsp; SYNR=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp; REFDV=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //pllclock=2*osc*(1+SYNR)/(1+REFDV)=32MHz;<BR>&nbsp;&nbsp;&nbsp; _asm(nop);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //If PLL is selected (PLLSEL=1), Bus Clock = PLLCLK / 2=16M&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; while(!(CRGFLG_LOCK==1)) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _asm(nop);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //when pll is steady ,then use it;<BR>&nbsp;&nbsp;&nbsp; CLKSEL_PLLSEL =1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //engage PLL to system; <BR>}<BR>//====================================================== <BR>void main(void) {<BR>&nbsp; unsigned char spich=0;<BR>&nbsp; EnableInterrupts;<BR>&nbsp; <BR>&nbsp; setbusclock();&nbsp; <BR>&nbsp; SPI_Init();<BR>&nbsp; <BR>&nbsp; for(;;)<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dly_ms(200);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPI_Write_Byte(0xff);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; spich=SPI_Read_Byte();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在这里添加你的代码!这是我SD卡操作的原函数,绝对好用!<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */&nbsp;&nbsp;<BR>&nbsp; }&nbsp;&nbsp; <BR>}<BR>需要完整工程请单击:<A target=_blank href="http://blog.21ic.com/UploadFiles/2008-11/282233989683.rar">demoSPI.rar</A></P>

0

主题

27

帖子

0

精华

注册会员

Rank: 2

积分
121
威望
54
贡献
25
兑换币
4
注册时间
2012-11-12
在线时间
21 小时
毕业学校
石家庄铁道学院
68#
发表于 2012-11-13 15:40:24 | 只看该作者
支持!谢谢楼主!
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
136
威望
106
贡献
28
兑换币
3
注册时间
2012-5-25
在线时间
1 小时
67#
发表于 2012-10-28 15:26:09 | 只看该作者
乱码???
回复 支持 反对

使用道具 举报

0

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
威望
251
贡献
77
兑换币
0
注册时间
2012-3-6
在线时间
23 小时
毕业学校
徐庄完全小学
66#
发表于 2012-4-4 09:16:30 | 只看该作者
其中有真意
回复 支持 反对

使用道具 举报

0

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
威望
251
贡献
77
兑换币
0
注册时间
2012-3-6
在线时间
23 小时
毕业学校
徐庄完全小学
65#
发表于 2012-4-4 08:42:52 | 只看该作者
支持,
回复 支持 反对

使用道具 举报

1

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
345
QQ
威望
269
贡献
58
兑换币
2
注册时间
2010-12-5
在线时间
9 小时
64#
发表于 2012-1-7 14:40:55 | 只看该作者
我的不知道怎么用不了啊?
回复 支持 反对

使用道具 举报

13

主题

183

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1141

热心会员奖章活跃会员奖章优秀会员奖章

威望
666
贡献
335
兑换币
143
注册时间
2011-4-2
在线时间
70 小时
63#
发表于 2011-8-21 22:36:05 | 只看该作者
回复 支持 反对

使用道具 举报

1

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
387
威望
271
贡献
74
兑换币
0
注册时间
2010-12-1
在线时间
21 小时
62#
发表于 2011-4-9 14:46:01 | 只看该作者
回复 支持 反对

使用道具 举报

4

主题

64

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5262
威望
326
贡献
4874
兑换币
32
注册时间
2009-9-25
在线时间
31 小时
61#
发表于 2011-4-5 17:02:32 | 只看该作者
谢谢龙丘,收下了!
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
威望
183
贡献
27
兑换币
2
注册时间
2010-11-20
在线时间
2 小时
60#
发表于 2011-4-2 16:41:18 | 只看该作者
好东西,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-29 03:25 , Processed in 2.113751 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表