PIC SPI程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

********************SPI初始化函数*************************/
void SPI_init()
{
void OpenSPI1();
unsigned int config1;
unsigned int config2;
unsigned int config3;
void OpenSPI2();
unsigned int config4;
unsigned int config5;
unsigned int config6;
RPINR20bits.SDI1R=14; //A相输入RP18数据输入
RPINR20bits.SCK1R=15; //B相输入RP17时钟输入
RPINR21bits.SS1R=13; //INDEX相输入RP18从选择输入
RPOR0bits.RP0R=00111; //输出状态
/* Configure SPI1 interrupt */
ConfigIntSPI1(SPI_INT_PRI_3 & SPI_INT_EN); //Interrupt Priority,Interrupt enable/disable /* Configure SPI2 interrupt */
ConfigIntSPI2(SPI_INT_EN & SPI_INT_PRI_6);
config1 = ENABLE_SDO_PIN & //SDO Pin Control bit
SPI_MODE16_ON & //Word/Byte Communication mode
SPI_SMP_ON & //SPI Data Input Sample phase
SPI_CKE_OFF & //SPI Clock Edge Select
SLAVE_ENABLE_OFF & //SPI slave select enable
CLK_POL_ACTIVE_HIGH & //SPI Clock polarity select时钟极性
MASTER_ENABLE_ON & //SPI Mode Select bit
SEC_PRESCAL_7_1 & //Secondary Prescale select 预分频
PRI_PRESCAL_64_1; //Primary Prescale select
config2 = FRAME_ENABLE_OFF & //Framed (制定)SPI support Enable/Disable
FRAME_SYNC_OUTPUT & //Frame Sync Pulse direction control
FRAME_POL_ACTIVE_HIGH & //Frame Sync Polarity control
FRAME_SYNC_EDGE_COINCIDE; //Frame Sync Data Justification control
config3 = SPI_ENABLE & //SPI Enable/Disable
SPI_IDLE_CON & //SPI Idle mode operation
SPI_RX_OVFLOW_CLR; //Clear Receive Overflow Flag bit OpenSPI1(config1, config2, config3);
config4 = ENABLE_SDO_PIN &
SPI_MODE16_ON &
SPI_SMP_ON &
SPI_CKE_OFF &
SLAVE_ENABLE_OFF &
CLK_POL_ACTIVE_HIGH &
MASTER_ENABLE_ON &
SEC_PRESCAL_7_1 &
PRI_PRESCAL_64_1;
config5 = FRAME_ENABLE_OFF &
FRAME_SYNC_OUTPUT &
FRAME_POL_ACTIVE_HIGH &
FRAME_SYNC_EDGE_COINCIDE;
config6 = SPI_ENABLE &
SPI_IDLE_CON &
SPI_RX_OVFLOW_CLR;
OpenSPI2(config4, config5, config6);
}
void SPI_init()
{
void OpenSPI1();
unsigned int config1;
unsigned int config2;
unsigned int config3;
void OpenSPI2();
unsigned int config4;
unsigned int config5;
unsigned int config6;
RPINR20bits.SDI1R=14; //A相输入RP18数据输入
RPINR20bits.SCK1R=15; //B相输入RP17时钟输入
RPINR21bits.SS1R=13; //INDEX相输入RP18从选择输入
RPOR0bits.RP0R=00111; //输出状态
/* Configure SPI1 interrupt */
ConfigIntSPI1(SPI_INT_PRI_3 & SPI_INT_EN); //Interrupt Priority,Interrupt enable/disable
/* Configure SPI2 interrupt */
ConfigIntSPI2(SPI_INT_EN & SPI_INT_PRI_6);
config1 = ENABLE_SDO_PIN & //SDO Pin Control bit
SPI_MODE16_ON & //Word/Byte Communication mode
SPI_SMP_ON & //SPI Data Input Sample phase
SPI_CKE_OFF & //SPI Clock Edge Select
SLAVE_ENABLE_OFF & //SPI slave select enable
CLK_POL_ACTIVE_HIGH & //SPI Clock polarity select时钟极性
MASTER_ENABLE_ON & //SPI Mode Select bit
SEC_PRESCAL_7_1 & //Secondary Prescale select 预分频
PRI_PRESCAL_64_1; //Primary Prescale select
config2 = FRAME_ENABLE_OFF & //Framed (制定)SPI support Enable/Disable
FRAME_SYNC_OUTPUT & //Frame Sync Pulse direction control
FRAME_POL_ACTIVE_HIGH & //Frame Sync Polarity control
FRAME_SYNC_EDGE_COINCIDE; //Frame Sync Data Justification control
config3 = SPI_ENABLE & //SPI Enable/Disable
SPI_IDLE_CON & //SPI Idle mode operation
SPI_RX_OVFLOW_CLR; //Clear Receive Overflow Flag bit
OpenSPI1(config1, config2, config3);
config4 = ENABLE_SDO_PIN &
SPI_MODE16_ON &
SPI_SMP_ON &
SPI_CKE_OFF &
SLAVE_ENABLE_OFF &
CLK_POL_ACTIVE_HIGH &
MASTER_ENABLE_ON &
SEC_PRESCAL_7_1 &
PRI_PRESCAL_64_1;
config5 = FRAME_ENABLE_OFF &
FRAME_SYNC_OUTPUT &
FRAME_POL_ACTIVE_HIGH &
FRAME_SYNC_EDGE_COINCIDE;
config6 = SPI_ENABLE &
SPI_IDLE_CON &
SPI_RX_OVFLOW_CLR;
OpenSPI2(config4, config5, config6);
}。

相关文档
最新文档