本帖最后由 Aaron_0618 于 2017-6-4 22:03 编辑 每3ms读取 SPI4_Read(ZSC,2);但是每次ZSC[0]与ZSC[1]两个値永远相同,清问问题点在哪边我设定错了? void SysTick_Handler(void) //1ms { SPI_Delay++; if(SPI_Delay==3) { SPI4_Read(ZSC,2); SPI_Delay=0; } } static void SPI4_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; SPI_InitTypeDef SPI_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI4, ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE | RCC_AHB1Periph_GPIOE | RCC_AHB1Periph_GPIOE, ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE); GPIO_PinAFConfig(GPIOE, GPIO_PinSource12, GPIO_AF_SPI4); GPIO_PinAFConfig(GPIOE, GPIO_PinSource13, GPIO_AF_SPI4); GPIO_PinAFConfig(GPIOE, GPIO_PinSource14, GPIO_AF_SPI4); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; GPIO_Init(GPIOE, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_Init(GPIOE, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; GPIO_Init(GPIOE, &GPIO_InitStructure); SPI_I2S_DeInit(SPI4); SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; SPI_InitStructure.SPI_Mode = SPI_Mode_Master; SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_128; //ZSC31210 50K-800K SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; SPI_InitStructure.SPI_CRCPolynomial = 7; SPI_Init(SPI4, &SPI_InitStructure); SPI_Cmd(SPI4, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOE, &GPIO_InitStructure); GPIO_SetBits(GPIOE, GPIO_Pin_11); } void SPI4_Read(uint8_t* pBuffer, uint16_t NumByteToRead) { GPIO_ResetBits(GPIOE, GPIO_Pin_11); while(NumByteToRead > 0x00) { *pBuffer = SPI4_SendByte(0xFF); NumByteToRead--; pBuffer++; } GPIO_SetBits(GPIOE, GPIO_Pin_11); } static uint8_t SPI4_SendByte(uint16_t byte) { SPI_I2S_SendData(SPI4, (uint16_t)byte); return (uint8_t)SPI_I2S_ReceiveData(SPI4); } |
亲 不要把社区当成了你们家的后院,看看你帖的代码,哪里是要请教问题的态度~ |
首先代码不全, |
看过原文的各位抱歉....格式跑掉了 |
STM32F107+LWIP---如何检查tcp通讯断开?并重新连接
有没有用过数字式mems麦克风的,想问下SPI通讯的问题
stm32f103 CAN通讯多帧发送问题?
STM32F107作为USB主机模拟串口通讯不成功(采用PL2303芯片)
STM32F103C8 LIN通讯例程
求助,丐版J-Link通讯不上
ethernet可以与ethercat通讯吗?
LIS3DH SPI 通讯问题
STM32F373 CAN通讯问题CAN_FLAG_LEC
请教高手看看,STM32F1的多机通讯,地址匹配唤醒问题