从0开始创建FX3工程之五 - SPI
2017-07-05 15:04
459 查看
1 SPI 功能使能
2 SPI 初始化
3 spi读写函数
cyfxusbspidmamode
cyfxusbspigpiomode : IO口模拟
cyfxusbspiregmode
测试无误。
#ifdef MY_SPI io_cfg.useSpi = CyTrue; #else io_cfg.useSpi = CyFalse; #endif
2 SPI 初始化
#ifdef MY_SPI CyU3PReturnStatus_t my_spi_init(void) { CyU3PSpiConfig_t spiConfig; CyU3PReturnStatus_t status = CY_U3P_SUCCESS; //SPI_Config status = CyU3PSpiInit (); if (status != CY_U3P_SUCCESS) { CyU3PDebugPrint(4, "CyU3PSpiInit Err = 0x%x\r\n",status);//??? 0x44:CY_U3P_ERROR_NOT_CONFIGURED return status; } CyU3PMemSet ((uint8_t *)&spiConfig, 0, sizeof(spiConfig)); spiConfig.isLsbFirst = CyFalse;//MSB1 spiConfig.cpol = CyFalse;//CyFalse SPI_CPOL_Low CyTrue1 spiConfig.ssnPol = CyFalse;//SSN is active low 1 spiConfig.cpha = CyFalse;//CyFalse SPI_CPHA_1Edge CyTrue1 spiConfig.leadTime = CY_U3P_SPI_SSN_LAG_LEAD_HALF_CLK; spiConfig.lagTime = CY_U3P_SPI_SSN_LAG_LEAD_HALF_CLK; spiConfig.ssnCtrl = CY_U3P_SPI_SSN_CTRL_FW;//SSN is controlled by API spiConfig.clock = 8000000;//src:10000000 8000000 spiConfig.wordLen = 8; status = CyU3PSpiSetConfig (&spiConfig, NULL); if (status != CY_U3P_SUCCESS) { CyU3PDebugPrint(4, "CyU3PSpiSetConfig Err = 0x%x\r\n",status); return status; } CyU3PDebugPrint(4, "\r\nCyU3PSpiSetConfig ok.\r\n"); return status; } #endif
3 spi读写函数
void SPI_WriteReg(uint8_t WriteAddr, uint8_t WriteData) { CyU3PSpiSetSsnLine (CyFalse); CyU3PSpiTransmitWords(&WriteAddr,1); CyU3PSpiTransmitWords(&WriteData,1); CyU3PSpiSetSsnLine (CyTrue); } void SPI_ReadBuf( uint8_t ReadAddr, uint8_t *ReadBuf, uint8_t Bytes ) { uint8_t i = 0; CyU3PSpiSetSsnLine (CyFalse); ReadAddr |= 0x80; CyU3PSpiTransmitWords(&ReadAddr,1); for(i=0; i< Bytes; i++){ CyU3PSpiReceiveWords(&ReadBuf[i],1); } CyU3PSpiSetSsnLine (CyTrue); }
cyfxusbspidmamode
cyfxusbspigpiomode : IO口模拟
cyfxusbspiregmode
测试无误。
相关文章推荐
- 从0开始创建FX3工程之四 - I2C
- 从0开始创建FX3工程之三 - GPIO
- 从0开始创建FX3工程之二 - UART
- 从0开始创建FX3工程之一 - 框架
- Git参考手册(2)-开始创建工程
- 开始学习OpenGL&shader -- mac工程创建
- zend framework quickstart zend框架入门之创建工程(快速开始:一)
- 从create-android-project.bat开始创建eclipse下可调试的cocos2dx c++工程
- 安卓训练-开始-开发你的第一个应用-创建安卓工程
- 用Nancy和Simple.Data创建一个图片博客 第一部分:开始一个工程
- 【Android入门日记】二、从最开始开始---创建android工程
- 【芝山物联】LM3S811自学笔记-2(从点亮LED灯开始之创建一个空白工程)
- 开始学习[工程项目管理]一书中...
- 开始VC之路--创建窗体
- 从头开始教你创建一个自定义可视化的Winows Form控件(Divider Panel)--For Begnners
- VC中创建MFC规则DLL工程
- 使用myeclipse创建一个上传文件的web工程
- DMO(DirectX Media Object)的工程创建过程及其调用方式
- Ubuntu下手动创建"开始"菜当[00原创]
- BC3.1环境下创建uCOS-II工程的问题