spi.c

来自「avr单片机mega128 的串口通讯的完整程序」· C语言 代码 · 共 43 行

C
43
字号
/*--------------------------------------------------*/
/*             AVR-ARM开发网论坛                    */
/*           http://www.avrarm.com                  */
/*            AVR生成代码测试程序                   */
/*--------------------------------------------------*/
/*     程序由AVR辅助开发工具V2.1.1自动生成          */
/*     AVR系统的处理器为:   ATMega128               */
/*     AVR系统的晶振频率:   8.0000 Mhz             */
/*--------------------------------------------------*/

#include <iom128v.h>
#include "spi.h"

//-----------------------------------------------------------
//SPI Master初始化子程序
//-----------------------------------------------------------
void SPI_MasterInit(void)
{
   DDR_SPI = (1<<DD_MOSI)|(1<<DD_SS)|(1<<DD_SCK);    /* 设置MOSI 和SCK 为输出,其他为输入 */
   SPCR = 0x70;                            /* 使能SPI 主机模式 */
   SPSR = 0x00;                            /* 倍速 */
}

//-----------------------------------------------------------
//SPI Master发送子程序
//-----------------------------------------------------------
void SPI_MasterTransmit(unsigned char cData)
{
   SPDR = cData;                          /* 启动数据传输 */
   while(!(SPSR & (1<<SPIF)));            /* 等待传输结束 */
}

//-----------------------------------------------------------
//SPI Master接收子程序
//-----------------------------------------------------------
unsigned char SPI_MasterReceive(void)
{
   SPDR = 0xFF;
   while(!(SPSR & (1<<SPIF)));            /* 等待接收结束 */
   return SPDR;                           /* 返回数据 */
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?