2631|0

574

帖子

11

TA的资源

一粒金砂(高级)

楼主
 

电设之F5529(3)SPI [复制链接]

本帖最后由 sunduoze 于 2015-8-28 17:01 编辑


电设之F5529(1)UCS
电设之F5529(2)OLED(外设)
电设之F5529(3)SPI
电设之F5529(4)定时器
电设之F5529(5)KEY(外设)
电设之F5529(6)ADS1118(外设)
电设之F5529——我的核心系统板


今年电赛做的DC-DC双向电源的题目,其中ADC、DAC均使用了SPI通信(ADS1118 & DAC7512),为简单考虑,
故同时使用UCB0、UCA0  SPI,正好晒一下自己用的硬件SPI的库。

工程上,先包含这些代码

  1. /************************************工程中请包含此部分代码******************************/
  2. /*
  3. * Stdint.h 该头文件 重定义了 unsigned char 、unsigned int 等等。。。
  4. */
  5. #include <stdint.h>
  6. /*
  7. * Macos : 系统延时,直接依据时钟定义
  8. */
  9. //#define CPU_F (1200000)        //Normal
  10. #define CPU_F ((double)25000000) //25Mhz

  11. #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0) )//x MHz----us
  12. #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
  13. #define delay_s(x)        __delay_cycles((long)(CPU_F*(double)x/1.0))
  14. /************************End of*****工程中请包含此部分代码******************************/
复制代码


函数:该函数包含了UCB0 & UCA0 硬件SPI
说明;还是把这两个合并了吧,本计划条件编译,
          后来想想,两个SPI同时工作时,不好控制
          只有头文件,没有源文件。

  1. /*
  2. *       SPI.h
  3. *  Created on: 2015年8月10日
  4. *      Author: Clover
  5. */

  6. #ifndef UCA0_SPI_H_
  7. #define UCA0_SPI_H_
  8. //                |             P6.6|-> SYNC_   ADS1118
  9. //                |             P3.3|-> Data Out (UCA0SIMO)
  10. //                |             P3.4|<- Data In  (UCA0SOMI)
  11. //                |             P2.7|-> Serial Clock Out (UCA0CLK)
  12. void USCIA0_SPI_Init()//硬件spi配置函数
  13. {
  14.           P3SEL |= BIT3+BIT4;                                       // P3.3,4 option select
  15.           P2SEL |= BIT7;                                                 // P2.7 option select
  16.           UCA0CTL1 |= UCSWRST;                                  // **Put state machine in reset**
  17.           UCA0CTL0 |= UCMST + UCSYNC + UCMSB;      // Master SPI 3-pin, 8-bit
  18.                                                                                   // Clock polarity high, MSB
  19.           UCA0CTL1 |= UCSSEL_2;                                 // SMCLK
  20.           UCA0BR0 |= 0x02;                                           //!!!25M时ADS1118配置为40分频
  21.           UCA0BR1 = 0;                                                  //
  22.           UCA0MCTL = 0;                                                // No modulation
  23.           UCA0CTL1 &= ~UCSWRST;                              // **Initialize USCI state machine**
  24. }

  25. //                |             P6.5|-> SYNC_   DAC7512
  26. //                |             P3.0|-> Data Out (UCB0SIMO)
  27. //                |             P3.1|<- Data In (UCB0SOMI)
  28. //                |             P3.2|-> Serial Clock Out (UCB0CLK)
  29. void USCIB0_SPI_Init()//硬件spi配置函数
  30. {
  31.         P3SEL |= BIT0+BIT1+BIT2;
  32.         UCB0CTL1 |= UCSWRST;
  33.         UCB0CTL0 |= UCMST + UCSYNC + UCMSB;      // master SPI 3-pin, 8-bit
  34.                                                                                 // Clock polarity high, ADS_1118_Value
  35.                                                                                 // Clock polarity high, ADS_1118_Value
  36.         UCB0CTL1 |= UCSSEL_2;                     ////  f(BITCLOCK)=f(BRCLK)/UCBRx;
  37.         //          UCSSELx   00 NA 01 ACLK 10 SMCLK 11 SMCLK//ACLK=32.768K
  38.         UCB0BR0 = 0x02;
  39.         UCB0BR1 = 0;
  40.         //          UCB0MCTL = 0;                             // No modulation
  41.         UCB0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  42. }

  43. #endif /* SPI_H_ */
复制代码


打包一下,上传啦~ 电设之F5529(3)SPI.rar (1.18 KB, 下载次数: 46)




 
点赞 关注(1)

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表