STM32与FPGA通信写数据出错问题解决方法(2)
- UID
- 1029342
- 性别
- 男
|
STM32与FPGA通信写数据出错问题解决方法(2)
84 85 FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); 86 87 // Enable FSMC Bank1_SRAM Bank 88 FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM4, ENABLE); 89 90 //CPLD 复位信号,这里使用普通IO PD7 91 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; 92 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //开漏输出 93 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度 94 GPIO_Init(GPIOC, &GPIO_InitStructure); 95 96 GPIO_ResetBits(GPIOD, GPIO_Pin_7); 97 GPIO_SetBits(GPIOD, GPIO_Pin_7); //根据CPLD程序设置低电平复位 98 } 99 /*******************************************************************************100 名称:CPLD_Write101 功能:CPLD写时序102 参数:uint8_t pBuffer-写入的数据 uint32_t WriteAddr-写入的地址103 时间:2011.1.15104 版本:1.0105 注意:在硬件设计中使用了八根地址线和数据线,因此以八位的数据写入106 *******************************************************************************/107 void CPLD_Write(uint16_t pBuffer, uint16_t WriteAddr)108 {109 *(uint16_t *) (Bank1_SRAM4_ADDR + WriteAddr) = pBuffer; 110 }111 /*******************************************************************************112 名称:uint16_t CPLD_Read(uint32_t ReadAddr)113 功能:CPLD读114 参数:uint32_t ReadAddr需要读取的地址,返回读取的值115 时间:2011.4.26116 版本:1.0117 注意:在硬件设计中使用了16根地址线和数据线,因此以16位的数据写入118 *******************************************************************************/119 uint16_t CPLD_Read(uint16_t ReadAddr)120 {121 uint16_t pBuffer; 122 pBuffer = *(__IO uint16_t*) (Bank1_SRAM4_ADDR + ReadAddr);123 return pBuffer; 124 } |
|
|
|
|
|