您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ spiReleaseBus函数代码示例

51自学网 2021-06-03 08:09:19
  C++
这篇教程C++ spiReleaseBus函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中spiReleaseBus函数的典型用法代码示例。如果您正苦于以下问题:C++ spiReleaseBus函数的具体用法?C++ spiReleaseBus怎么用?C++ spiReleaseBus使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了spiReleaseBus函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: lsm303_init

/** * Init function. */int lsm303_init(SPIDriver *spip) {	uint8_t who_am_i;	// FIXME: interrupt lines will be rearranged!	spiAcquireBus(spip);	who_am_i = lsm303dReadRegister(spip, LSM303D_WHO_AM_I);	if (who_am_i != 0x49) {		spiReleaseBus(spip);		return -1;	}	lsm303dWriteRegister(spip, LSM303D_CTRL0, 0x00);	lsm303dWriteRegister(spip, LSM303D_CTRL2, 0x40); // 194Hz anti-alias filter BW	lsm303dWriteRegister(spip, LSM303D_CTRL3, 0x04); // Acc data-ready on INT1	lsm303dWriteRegister(spip, LSM303D_CTRL4, 0x04); // Mag data-ready on INT2	lsm303dWriteRegister(spip, LSM303D_CTRL5, 0xF4); // Temp sensor enabled, magnetometer high-res, Mag 100Hz	lsm303dWriteRegister(spip, LSM303D_CTRL6, 0x00); // Mag FS ±2 gauss	lsm303dWriteRegister(spip, LSM303D_CTRL7, 0x00);	lsm303dWriteRegister(spip, LSM303D_CTRL1, 0x67); // Acc 100Hz, axes enabled, no data update until MSB and LSB read	spiReleaseBus(spip);	chThdSleepMilliseconds(250);	return 0;}
开发者ID:r2p,项目名称:IMU_module,代码行数:28,


示例2: set_full_scale

static msg_t set_full_scale(void *ip, lis302dl_fs_t fs) {  float newfs, scale;  uint8_t i, cr;  if(fs == LIS302DL_FS_2G) {    newfs = LIS302DL_2G;  }  else if(fs == LIS302DL_FS_8G) {    newfs = LIS302DL_8G;  }  else {    return MSG_RESET;  }  if(newfs != ((LIS302DLDriver *)ip)->fullscale) {    scale = newfs / ((LIS302DLDriver *)ip)->fullscale;    ((LIS302DLDriver *)ip)->fullscale = newfs;#if LIS302DL_USE_SPI#if LIS302DL_SHARED_SPI  spiAcquireBus(((LIS302DLDriver *)ip)->config->spip);  spiStart(((LIS302DLDriver *)ip)->config->spip,          ((LIS302DLDriver *)ip)->config->spicfg);#endif /* LIS302DL_SHARED_SPI */    lis302dlSPIReadRegister(((LIS302DLDriver *)ip)->config->spip,                            LIS302DL_AD_CTRL_REG1, 1, &cr);#if LIS302DL_SHARED_SPI  spiReleaseBus(((LIS302DLDriver *)ip)->config->spip);#endif /* LIS302DL_SHARED_SPI */#endif /* LIS302DL_USE_SPI */    cr &= ~(LIS302DL_CTRL_REG1_FS_MASK);    cr |= fs;#if LIS302DL_USE_SPI#if LIS302DL_SHARED_SPI  spiAcquireBus(((LIS302DLDriver *)ip)->config->spip);  spiStart(((LIS302DLDriver *)ip)->config->spip,          ((LIS302DLDriver *)ip)->config->spicfg);#endif /* LIS302DL_SHARED_SPI */    lis302dlSPIWriteRegister(((LIS302DLDriver *)ip)->config->spip,                             LIS302DL_AD_CTRL_REG1, 1, &cr);#if LIS302DL_SHARED_SPI  spiReleaseBus(((LIS302DLDriver *)ip)->config->spip);#endif /* LIS302DL_SHARED_SPI */#endif /* LIS302DL_USE_SPI */    /* Scaling sensitivity and bias. Re-calibration is suggested anyway. */    for(i = 0; i < LIS302DL_NUMBER_OF_AXES; i++) {      ((LIS302DLDriver *)ip)->sensitivity[i] *= scale;      ((LIS302DLDriver *)ip)->bias[i] *= scale;    }  }  return MSG_OK;}
开发者ID:mabl,项目名称:ChibiOS,代码行数:55,


示例3: wavePlayerThread

static msg_t wavePlayerThread(void *arg) {	(void)arg;	chRegSetThreadName("blinker");	UINT temp, bufSwitch=1;	codec_pwrCtl(1);	codec_muteCtl(0);	f_read(&f1, buf, PLAYBACK_BUFFER_SIZE, &temp);	bytesToPlay-=temp;	chEvtAddFlags(1);	while(bytesToPlay)	{		chEvtWaitOne(1);		if (bufSwitch)		{			codec_audio_send(buf, temp/2);			spiAcquireBus(&SPID1);			f_read(&f1, buf2, PLAYBACK_BUFFER_SIZE, &temp);			spiReleaseBus(&SPID1);			bufSwitch=0;		}		else		{			codec_audio_send(buf2, temp/2);			spiAcquireBus(&SPID1);			f_read(&f1, buf, PLAYBACK_BUFFER_SIZE, &temp);			spiReleaseBus(&SPID1);			bufSwitch=1;		}		bytesToPlay-=temp;		if (chThdShouldTerminate()) break;	}	codec_muteCtl(1);	codec_pwrCtl(0);	playerThread=NULL;	f_close(&f1);	return 0;}
开发者ID:ADTL,项目名称:ARMWork,代码行数:49,


示例4: cmd_write

static void cmd_write(BaseSequentialStream *chp, int argc, char *argv[]) {    (void)argc;    (void)argv;    acquire_bus();    write_index(0x00);    chprintf(chp,"Device ID %x/r/n",read_data());    release_bus();    //chprintf(chp,"GRAM %x/r/n",gdispReadReg(0x22));     /*gdispClear(White);    chThdSleepMilliseconds(3000);    gdispClear(Red);    chThdSleepMilliseconds(3000);    gdispClear(Blue);    chThdSleepMilliseconds(3000);    gdispClear(Green);*/    #if 0    uint8_t c = 0xAA;    uint8_t d = 0x55;    spiAcquireBus(&SPID1);              /* Acquire ownership of the bus.    */    spiStart(&SPID1, &spicfg);       /* Setup transfer parameters.       */    spiSelect(&SPID1);                  /* Slave Select assertion.          */    spiSend(&SPID1, 1, &c);    spiSend(&SPID1, 1, &d);    spiUnselect(&SPID1);                /* Slave Select de-assertion.       */    spiReleaseBus(&SPID1);              /* Ownership release.               */    #endif}
开发者ID:bass0324,项目名称:Bass-GFX-Examples,代码行数:33,


示例5: getTemperatureStr

static uint32_t getTemperatureStr(char * temperatureStr){    float temperature = 0;    float pressure = 0;    spiAcquireBus(&CC3000_SPI_DRIVER);    i2cAcquireBus(&I2C_DRIVER);    i2cStart(&I2C_DRIVER, &i2cConfig);    if (RDY_OK != mplOneShotReadBarometer(&I2C_DRIVER,                                          MPL3115A2_DEFAULT_ADDR,                                          &pressure,                                           &temperature))    {        return 1;    }    i2cStop(&I2C_DRIVER);    i2cReleaseBus(&I2C_DRIVER);    spiReleaseBus(&CC3000_SPI_DRIVER);     temperature += CELSIUS_TO_KELVIN;    snprintf(temperatureStr, TEMPERATURE_STRING_SIZE, "%.2f K", temperature);     temperatureStr[TEMPERATURE_STRING_SIZE-1] = 0;    return 0;}
开发者ID:alanbarr,项目名称:FinalYearProject,代码行数:31,


示例6: read_raw

static msg_t read_raw(void *ip, int32_t axes[LIS302DL_NUMBER_OF_AXES]) {  uint8_t i, tmp;  osalDbgCheck((ip != NULL) && (axes != NULL));  osalDbgAssert((((LIS302DLDriver *)ip)->state == LIS302DL_READY),              "read_raw(), invalid state");#if LIS302DL_USE_SPI  osalDbgAssert((((LIS302DLDriver *)ip)->config->spip->state == SPI_READY),                "read_raw(), channel not ready");#if	LIS302DL_SHARED_SPI  spiAcquireBus(((LIS302DLDriver *)ip)->config->spip);  spiStart(((LIS302DLDriver *)ip)->config->spip,          ((LIS302DLDriver *)ip)->config->spicfg);#endif /* LIS302DL_SHARED_SPI */    for(i = 0; i < LIS302DL_NUMBER_OF_AXES; i++) {      lis302dlSPIReadRegister(((LIS302DLDriver *)ip)->config->spip,                              LIS302DL_AD_OUT_X + (i * 2), 1, &tmp);      axes[i] = (int32_t)((int8_t)tmp);    }#if	LIS302DL_SHARED_SPI  spiReleaseBus(((LIS302DLDriver *)ip)->config->spip);#endif /* LIS302DL_SHARED_SPI */#endif /* LIS302DL_USE_SPI */   return MSG_OK;}
开发者ID:mabl,项目名称:ChibiOS,代码行数:31,


示例7: getPressureStr

static uint32_t getPressureStr(char * pressureStr){    float pressure;    float temperature;    spiAcquireBus(&CC3000_SPI_DRIVER);    i2cAcquireBus(&I2C_DRIVER);    i2cStart(&I2C_DRIVER, &i2cConfig);    if (RDY_OK != mplOneShotReadBarometer(&I2C_DRIVER,                                          MPL3115A2_DEFAULT_ADDR,                                          &pressure,                                           &temperature))    {        return 1;    }    i2cStop(&I2C_DRIVER);    i2cReleaseBus(&I2C_DRIVER);    spiReleaseBus(&CC3000_SPI_DRIVER);     pressure /= 1000; /* kPa */    snprintf(pressureStr, PRESSURE_STRING_SIZE, "%.2f kPa", pressure);     pressureStr[PRESSURE_STRING_SIZE-1] = 0;    return 0;}
开发者ID:alanbarr,项目名称:FinalYearProject,代码行数:29,


示例8: spiAcquireBus

msg_t Mtd25::spi_write_enable(void) {  msg_t ret = MSG_RESET;  uint8_t tmp;#if SPI_USE_MUTUAL_EXCLUSION  spiAcquireBus(this->spip);#endif  /* try to enable write access */  spiSelect(spip);  spiPolledExchange(spip, S25_CMD_WREN);  spiUnselect(spip);  chSysPolledDelayX(10);  /* check result */  spiSelect(spip);  spiPolledExchange(spip, S25_CMD_RDSR1);  tmp = spiPolledExchange(spip, 0);  spiUnselect(spip);  if (tmp & S25_SR1_WEL)    ret = MSG_OK;  else    ret = MSG_RESET;#if SPI_USE_MUTUAL_EXCLUSION  spiReleaseBus(this->spip);#endif  return ret;}
开发者ID:char32,项目名称:24aa,代码行数:30,


示例9: read

static flash_error_t read(void *instance, flash_address_t addr,                          uint8_t *rp, size_t n) {  N25Q128Driver *devp = (N25Q128Driver *)instance;  SPIDriver *spip = devp->config->spip;  osalDbgAssert(devp->state == FLASH_READY, "invalid state");#if N25Q128_SHARED_SPI == TRUE  spiAcquireBus(spip);  spiStart(spip, devp->config->spicfg);#endif  devp->state = FLASH_ACTIVE;  /* Read command.*/  spiSelect(spip);  spi_send_cmd_addr(devp, N25Q128_CMD_READ, addr);  spiReceive(spip, n, rp);  spiUnselect(spip);  devp->state = FLASH_READY;#if N25Q128_SHARED_SPI == TRUE  spiReleaseBus(spip);#endif  return FLASH_NO_ERROR;}
开发者ID:awygle,项目名称:ChibiOS,代码行数:25,


示例10: ll_25xx_transmit_receive

/** * @brief 25XX low level write then read rountine. * * @param[in]  eepcfg pointer to configuration structure of eeprom file. * @param[in]  txbuf  pointer to buffer to be transfered. * @param[in]  txlen  number of bytes to be transfered. * @param[out] rxbuf  pointer to buffer to be received. * @param[in]  rxlen  number of bytes to be received. */static void ll_25xx_transmit_receive(const SPIEepromFileConfig *eepcfg,                                     const uint8_t *txbuf, size_t txlen,                                     uint8_t *rxbuf, size_t rxlen) {#if SPI_USE_MUTUAL_EXCLUSION  spiAcquireBus(eepcfg->spip);#endif  spiStart(eepcfg->spip, eepcfg->spicfg);  spiSelect(eepcfg->spip);#ifdef POLLED_SPI  size_t count = 0;  for( count = 0; count < txlen; ++count )      spiPolledExchange( eepcfg->spip, txbuf[count] );  for( count = 0; count < rxlen; ++count )      rxbuf[count] = spiPolledExchange( eepcfg->spip, 0 );#else  spiSend(eepcfg->spip, txlen, txbuf);  if (rxlen) /* Check if receive is needed. */    spiReceive(eepcfg->spip, rxlen, rxbuf);#endif  spiUnselect(eepcfg->spip);#if SPI_USE_MUTUAL_EXCLUSION  spiReleaseBus(eepcfg->spip);#endif}
开发者ID:serdzz,项目名称:ChibiOS-Drivers,代码行数:36,


示例11: l3gd20Stop

/** * @brief   Deactivates the L3GD20 Complex Driver peripheral. * * @param[in] devp       pointer to the @p L3GD20Driver object * * @api */void l3gd20Stop(L3GD20Driver *devp) {  uint8_t cr1;  osalDbgCheck(devp != NULL);  osalDbgAssert((devp->state == L3GD20_STOP) || (devp->state == L3GD20_READY),                "l3gd20Stop(), invalid state");  if (devp->state == L3GD20_READY) {    /* Disabling all axes and enabling power down mode.*/    cr1 = 0;    #if L3GD20_USE_SPI#if	L3GD20_SHARED_SPI    spiAcquireBus(devp->config->spip);    spiStart(devp->config->spip,             devp->config->spicfg);#endif /* L3GD20_SHARED_SPI */    l3gd20SPIWriteRegister(devp->config->spip, L3GD20_AD_CTRL_REG1,                            1, &cr1);    spiStop(devp->config->spip);    #if	L3GD20_SHARED_SPI    spiReleaseBus(devp->config->spip);#endif /* L3GD20_SHARED_SPI */ #endif /* L3GD20_USE_SPI */  }			   devp->state = L3GD20_STOP;}
开发者ID:rusefi,项目名称:ChibiOS,代码行数:36,


示例12: adis16405_read_multiple

static void adis16405_read_multiple(int base_addr, int num, uint16_t* rx_buff) {    spiAcquireBus(&ADIS16405_SPID);    spiStart(&ADIS16405_SPID, &spi_cfg);    for (int i = 0; i < num; i++)        rx_buff[i] = internal_adis16405_read_u16(base_addr + i * 2);    spiReleaseBus(&ADIS16405_SPID);}
开发者ID:cuspaceflight,项目名称:spalax,代码行数:8,


示例13: xflash_txn_end

static voidxflash_txn_end(){  spiUnselect(SPI_FLASH);#if SPI_USE_MUTUAL_EXCLUSION  spiReleaseBus(SPI_FLASH);#endif}
开发者ID:jaumann,项目名称:model-t,代码行数:8,


示例14: gyro_write_register

void gyro_write_register (uint8_t address, uint8_t data) {  address = address & (~0x80);         /* Clear the write bit (bit 7)      */  spiAcquireBus(&SPID1);               /* Acquire ownership of the bus.    */  spiStart(&SPID1, &gyro_cfg);         /* Setup transfer parameters.       */  spiSelect(&SPID1);                   /* Slave Select assertion.          */  spiSend(&SPID1, 1, &address);        /* Send the address byte            */  spiSend(&SPID1, 1, &data);   spiUnselect(&SPID1);                 /* Slave Select de-assertion.       */  spiReleaseBus(&SPID1);               /* Ownership release.               */}
开发者ID:ka-ross,项目名称:Digital-Systems-Labs,代码行数:10,


示例15: sendByte3310

/** * @brief Sends a byte through the SPI interface and return the byte    * received from the SPI bus.     * @param byte : byte to send.     * @retval : The value of the received byte.     */ void sendByte3310( uint8_t byte ){    spiAcquireBus( &SPI_3310 );     // Acquire ownership of the bus.    spiStart( &SPI_3310, &spicfg ); // Setup transfer parameters.    spiSelect( &SPI_3310 );         // Slave Select assertion.    spiStartSend( &SPI_3310, 1, &byte );    //spiExchange( &SPI_3310, 512,    //             txbuf, rxbuf );  // Atomic transfer operations.    spiUnselect( &SPI_3310 );       // Slave Select de-assertion.    spiReleaseBus( &SPI_3310 );     // Ownership release.}
开发者ID:z80,项目名称:clock,代码行数:16,


示例16: spiAcquireBus

uint16_t A4960::writeReg(const uint8_t addr, const uint16_t data) {    const uint16_t txData = (uint16_t(addr & 0x7) << 13) | 0x1000 | (data & 0xfff);    uint16_t rxData;    spiAcquireBus(spip);    spiSelect(spip);    spiExchange(spip, 1, &txData, &rxData);    spiUnselect(spip);    spiReleaseBus(spip);    return rxData;}
开发者ID:GHF,项目名称:gyroking,代码行数:11,


示例17: sendArray3310

void sendArray3310( uint8_t * data, int cnt ){    spiAcquireBus( &SPID1 );     // Acquire ownership of the bus.    spiStart( &SPID1, &spicfg ); // Setup transfer parameters.    spiSelect( &SPID1 );         // Slave Select assertion.    //spiExchange( &SPID1, 512,    //            txbuf, rxbuf );  // Atomic transfer operations.    spiStartSend( &SPI_3310, cnt, data );    spiUnselect( &SPID1 );       // Slave Select de-assertion.    spiReleaseBus( &SPID1 );     // Ownership release.}
开发者ID:z80,项目名称:clock,代码行数:11,


示例18: fm25l16_exchange

uint8_t fm25l16_exchange(int len){	spiAcquireBus(&SPID1);              /* Acquire ownership of the bus.    */	spiStart(&SPID1, &hs_spicfg);       /* Setup transfer parameters.       */	spiSelect(&SPID1);                  /* Slave Select assertion.          */	spiExchange(&SPID1, len,			txbuf, rxbuf);          /* Atomic transfer operations.      */	spiUnselect(&SPID1);                /* Slave Select de-assertion.       */    spiReleaseBus(&SPID1);              /* Ownership release.               */	return len;}
开发者ID:scarecrowli,项目名称:ChibiOS,代码行数:11,


示例19: fm25l16_write_read

uint8_t fm25l16_write_read(uint8_t cmd){	spiAcquireBus(&SPID1);              /* Acquire ownership of the bus.    */	spiStart(&SPID1, &hs_spicfg);       /* Setup transfer parameters.       */	spiSelect(&SPID1);                  /* Slave Select assertion.          */	tx_ch = cmd;	spiExchange(&SPID1, 1,			&tx_ch, &rx_ch);          /* Atomic transfer operations.      */	spiUnselect(&SPID1);                /* Slave Select de-assertion.       */    spiReleaseBus(&SPID1);              /* Ownership release.               */	return rx_ch;}
开发者ID:scarecrowli,项目名称:ChibiOS,代码行数:12,


示例20: gyro_read_register

uint8_t gyro_read_register (uint8_t address) {  uint8_t receive_data;  address = address | 0x80;            /* Set the read bit (bit 7)         */  spiAcquireBus(&SPID1);               /* Acquire ownership of the bus.    */  spiStart(&SPID1, &gyro_cfg);         /* Setup transfer parameters.       */  spiSelect(&SPID1);                   /* Slave Select assertion.          */  spiSend(&SPID1, 1, &address);        /* Send the address byte */  spiReceive(&SPID1, 1,&receive_data);   spiUnselect(&SPID1);                 /* Slave Select de-assertion.       */  spiReleaseBus(&SPID1);               /* Ownership release.               */  return (receive_data);}
开发者ID:ka-ross,项目名称:Digital-Systems-Labs,代码行数:12,


示例21: writeByteSPI

uint8_t writeByteSPI(uint8_t txbyte){	uint8_t rxbyte = 0;	spiAcquireBus(&SPID1);              /* Acquire ownership of the bus.    */    spiStart(&SPID1, spicfg);       /* Setup transfer parameters.       */    spiSelect(&SPID1);                  /* Slave Select assertion.          */    spiExchange(&SPID1, 1,                &txbyte, &rxbyte);          /* Atomic transfer operations.      */    spiUnselect(&SPID1);                /* Slave Select de-assertion.       */    spiReleaseBus(&SPID1);	chThdSleepMilliseconds(1);	return rxbyte;}
开发者ID:Ankhbayar,项目名称:mlab-chibios,代码行数:13,


示例22: adis_spi_cb_txdone_handler

/*! /brief Process information from a adis_spi_cb event * */void adis_spi_cb_txdone_handler(eventid_t id) {	(void) id;	switch(adis_driver.reg) {		case ADIS_PRODUCT_ID:			spiUnselect(adis_driver.spi_instance);			spiReleaseBus(adis_driver.spi_instance);			adis_tstall_delay();			spiAcquireBus(adis_driver.spi_instance);			spiSelect(adis_driver.spi_instance);			spiStartReceive(adis_driver.spi_instance, adis_driver.rx_numbytes, adis_driver.adis_rxbuf);			adis_driver.state             = ADIS_RX_PEND;			break;		case ADIS_GLOB_CMD:			spiStartReceive(adis_driver.spi_instance, adis_driver.rx_numbytes, adis_driver.adis_rxbuf);			adis_driver.state             = ADIS_RX_PEND;			break;		default:			spiUnselect(adis_driver.spi_instance);			spiReleaseBus(adis_driver.spi_instance);			adis_driver.state             = ADIS_IDLE;			break;	}}
开发者ID:pfhnr,项目名称:stm32,代码行数:26,


示例23: max6675_get_temp

int max6675_get_temp(const struct max6675 *max){	uint16_t read;	spiAcquireBus(max->driver);	spiStart(max->driver, &max->config);	spiSelect(max->driver);	spiReceive(max->driver, 1, &read);	spiUnselect(max->driver);	spiStop(max->driver);	spiReleaseBus(max->driver);	return (read >> 3) * 250;}
开发者ID:atalax,项目名称:reflow-controller,代码行数:14,


示例24: adis16405_write_u8

static void adis16405_write_u8(uint8_t addr, uint8_t val) {    uint16_t txbuf[1] = {        ((((uint16_t)addr | 0x80) << 8) | val)    };    spiAcquireBus(&ADIS16405_SPID);    spiStart(&ADIS16405_SPID, &spi_cfg);    spiSelect(&ADIS16405_SPID);    spiSend(&ADIS16405_SPID, 1, (void*)txbuf);    spiUnselect(&ADIS16405_SPID);    spiReleaseBus(&ADIS16405_SPID);}
开发者ID:cuspaceflight,项目名称:spalax,代码行数:14,


示例25: THD_FUNCTION

static THD_FUNCTION(spi_thread_2, p) {  (void)p;  chRegSetThreadName("SPI thread 2");  while (true) {    spiAcquireBus(&PORTAB_SPI1);        /* Acquire ownership of the bus.    */    palWriteLine(PORTAB_LINE_LED1, PORTAB_LED_OFF);    spiStart(&PORTAB_SPI1, &ls_spicfg); /* Setup transfer parameters.       */    spiSelect(&PORTAB_SPI1);            /* Slave Select assertion.          */    spiExchange(&PORTAB_SPI1, 512,                txbuf, rxbuf);          /* Atomic transfer operations.      */    spiUnselect(&PORTAB_SPI1);          /* Slave Select de-assertion.       */    spiReleaseBus(&PORTAB_SPI1);        /* Ownership release.               */  }}
开发者ID:oh3eqn,项目名称:ChibiOS,代码行数:15,


示例26: THD_FUNCTION

static THD_FUNCTION(spi_thread_2, p) {  (void)p;  chRegSetThreadName("SPI thread 2");  while (true) {    spiAcquireBus(&SPID2);              /* Acquire ownership of the bus.    */    palClearPad(GPIOA, GPIOA_LED_GREEN);/* LED OFF.                         */    spiStart(&SPID2, &ls_spicfg);       /* Setup transfer parameters.       */    spiSelect(&SPID2);                  /* Slave Select assertion.          */    spiExchange(&SPID2, 512,                txbuf, rxbuf);          /* Atomic transfer operations.      */    spiUnselect(&SPID2);                /* Slave Select de-assertion.       */    spiReleaseBus(&SPID2);              /* Ownership release.               */  }}
开发者ID:KTannenberg,项目名称:ChibiOS,代码行数:15,


示例27: THD_FUNCTION

static THD_FUNCTION(spi_thread_1, p){  (void)p;  chRegSetThreadName("SPI thread 1");  while (TRUE) {    spiAcquireBus(&SPID1);              /* Acquire ownership of the bus.    */    palSetPad(GPIOF, GPIOF_LED_GREEN);  /* LED ON.                          */    spiStart(&SPID1, &hs_spicfg);       /* Setup transfer parameters.       */    spiSelect(&SPID1);                  /* Slave Select assertion.          */    spiExchange(&SPID1, 512,                txbuf, rxbuf);          /* Atomic transfer operations.      */    spiUnselect(&SPID1);                /* Slave Select de-assertion.       */    spiReleaseBus(&SPID1);              /* Ownership release.               */  }}
开发者ID:ChibiOS,项目名称:ChibiOS-Contrib,代码行数:15,


示例28: spi_thread_2

static msg_t spi_thread_2(void *p) {  (void)p;  chRegSetThreadName("SPI thread 2");  while (TRUE) {    spiAcquireBus(&SPID1);              /* Acquire ownership of the bus.    */    palSetPad(IOPORT3, GPIOC_LED);      /* LED OFF.                         */    spiStart(&SPID1, &ls_spicfg);       /* Setup transfer parameters.       */    spiSelect(&SPID1);                  /* Slave Select assertion.          */    spiExchange(&SPID1, 512,                txbuf, rxbuf);          /* Atomic transfer operations.      */    spiUnselect(&SPID1);                /* Slave Select de-assertion.       */    spiReleaseBus(&SPID1);              /* Ownership release.               */  }  return 0;}
开发者ID:CNCBASHER,项目名称:ChibiOS,代码行数:16,


示例29: spi_thread_1

static msg_t spi_thread_1(void *p) {    (void)p;    chRegSetThreadName("SPI thread 1");    while (TRUE) {        spiAcquireBus(&SPID2);              /* Acquire ownership of the bus.    */        palClearPad(PORT11, P11_LED1);      /* LED ON.                          */        spiStart(&SPID2, &hs_spicfg);       /* Setup transfer parameters.       */        spiSelect(&SPID2);                  /* Slave Select assertion.          */        spiExchange(&SPID2, 512,                    txbuf, rxbuf);          /* Atomic transfer operations.      */        spiUnselect(&SPID2);                /* Slave Select de-assertion.       */        spiReleaseBus(&SPID2);              /* Ownership release.               */    }    return 0;}
开发者ID:hmchen1,项目名称:ChibiOS-RT,代码行数:16,



注:本文中的spiReleaseBus函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ spiSelect函数代码示例
C++ spiRec函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。