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

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

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

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

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

示例1: main

int main(void) {	thread_t *sh = NULL;	PollerData.temp = 0;	PollerData.press = 0;/*	PollerData.uTime = 0;*/	halInit();	chSysInit();	shellInit();		usbDisconnectBus(serusbcfg.usbp);	chThdSleepMilliseconds(1000);	usbStart(serusbcfg.usbp, &usbcfg);	usbConnectBus(serusbcfg.usbp);		sduObjectInit(&SDU1);	sduStart(&SDU1, &serusbcfg);	// SPI-related pins (for display)	palSetPadMode(GPIOB, 11, PAL_MODE_OUTPUT_PUSHPULL); 	palSetPadMode(GPIOB, 10, PAL_MODE_OUTPUT_PUSHPULL);	palSetPadMode(GPIOB, 13, PAL_MODE_ALTERNATE(5));	palSetPadMode(GPIOB, 14, PAL_MODE_OUTPUT_PUSHPULL);	palSetPadMode(GPIOB, 15, PAL_MODE_ALTERNATE(5));	spiStart(&SPID1, &spi1cfg);	spiStart(&SPID2, &spi2cfg);	i2cStart(&I2CD1, &i2cconfig);	initGyro();	initAccel();	initMag();//	nunchuk_status = nunchuk_init();	bmp085_status = bmp085_init();	lcd5110Init();	lcd5110SetPosXY(0, 0);	lcd5110WriteText("P :: ");	lcd5110SetPosXY(0, 1);	lcd5110WriteText("T :: ");	chThdCreateStatic(waThreadBlink, sizeof(waThreadBlink), NORMALPRIO, ThreadBlink, NULL);	chThdCreateStatic(waThreadButton, sizeof(waThreadButton), NORMALPRIO, ThreadButton, NULL);	chThdCreateStatic(waPoller, sizeof(waPoller), NORMALPRIO, ThreadPoller, NULL);    while (TRUE) {		if (!sh) {			sh = shellCreate(&shCfg, SHELL_WA_SIZE, NORMALPRIO);		}		else if (chThdTerminatedX(sh)) {			chThdRelease(sh);			sh = NULL;		}		chThdSleepMilliseconds(1000);	}	return 0; // never returns, lol}
开发者ID:part1zano,项目名称:stm32-chibios,代码行数:59,


示例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: main

int main(void) {    halInit();    chSysInit();    chThdSleepMilliseconds(200);    // input capture & high-res timer    const ICUConfig icuConfig = { ICU_INPUT_ACTIVE_HIGH, 1000000, nullptr, nullptr, nullptr, nullptr, nullptr };    icuStart(&TIMING_ICU, &icuConfig);    icuEnable(&TIMING_ICU);    // serial setup    const SerialConfig btSerialConfig = { 921600, 0, USART_CR2_STOP1_BITS, USART_CR3_CTSE | USART_CR3_RTSE };    sdStart(&BT_SERIAL, &btSerialConfig);    // PWM setup    const PWMConfig mPWMConfig = { STM32_TIMCLK1, PWM_PERIOD, nullptr, {            { PWM_OUTPUT_DISABLED, nullptr },            { PWM_OUTPUT_DISABLED, nullptr },            { PWM_OUTPUT_ACTIVE_HIGH, nullptr },            { PWM_OUTPUT_ACTIVE_HIGH, nullptr } }, 0, };    pwmStart(&M1_PWM, &mPWMConfig);    // SPI setup    // speed = pclk/8 = 5.25MHz    const SPIConfig m1SPIConfig = { NULL, GPIOC, GPIOC_M1_NSS, SPI_CR1_DFF | SPI_CR1_BR_1 };    const SPIConfig m2SPIConfig = { NULL, GPIOD, GPIOD_M2_NSS, SPI_CR1_DFF | SPI_CR1_BR_1 };    const SPIConfig adcSPIConfig = { NULL, GPIOA, GPIOA_ADC_NSS, SPI_CR1_BR_2 | SPI_CR1_CPHA };    spiStart(&M1_SPI, &m1SPIConfig);    spiStart(&M2_SPI, &m2SPIConfig);    spiStart(&ADC_SPI, &adcSPIConfig);    // motor setup    A4960 m1(&M1_SPI, &M1_PWM, M1_PWM_CHAN);    A4960 m2(&M2_SPI, &M2_PWM, M2_PWM_CHAN);    // ADC setup    ADS1259 adc(&ADC_SPI);    // initialize control structure    Tortilla tortilla(m1, m2, adc, &TIMING_ICU, &BT_SERIAL);    // start slave threads//    chThdCreateStatic(waHeartbeat, sizeof(waHeartbeat), IDLEPRIO, tfunc_t(threadHeartbeat), nullptr);    chThdCreateStatic(waIO, sizeof(waIO), LOWPRIO, tfunc_t(threadIO), &tortilla);    // done with setup    palClearPad(GPIOC, GPIOC_LEDB);    palClearPad(GPIOB, GPIOB_LED2);    tortilla.fastLoop();}
开发者ID:GHF,项目名称:gyroking,代码行数:51,


示例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: demo_acc_start

void demo_acc_start(accelerometer_callback callback){    static const SPIConfig spi1cfg = {        NULL,        /* HW dependent part.*/        GPIOE,        GPIOE_CS_SPI,        SPI_CR1_BR_0 | SPI_CR1_BR_1 | SPI_CR1_CPOL | SPI_CR1_CPHA    };    spiStart(&SPID1, &spi1cfg);    acc_callback = callback;    chThdSleepMilliseconds(500);    /* LIS302DL initialization.*/    lis302dlWriteRegister(&SPID1, LIS302DL_CTRL_REG1, 0x43);    lis302dlWriteRegister(&SPID1, LIS302DL_CTRL_REG2, 0x00);    lis302dlWriteRegister(&SPID1, LIS302DL_CTRL_REG3, 0x00);    chThdCreateStatic(waAcceleroThd,                      sizeof(waAcceleroThd),                      NORMALPRIO + 10,                      AcceleroThd,                      NULL);}
开发者ID:SyrianSpock,项目名称:stm32f4discovery_rosserial,代码行数:25,


示例6: main

/* * Application entry point. */int main(void) {  /*   * System initializations.   * - HAL initialization, this also initializes the configured device drivers   *   and performs the board-specific initializations.   * - Kernel initialization, the main() function becomes a thread and the   *   RTOS is active.   */  halInit();  chSysInit();  /*   * Activates SPID1. Slave select is configured on GPIOC pin 0. This is   * PCS4 for the KINETIS DSPI managed slave select.   */  palSetPadMode(GPIOC, 5, PAL_MODE_ALTERNATIVE_2);  /* SCK  */  palSetPadMode(GPIOC, 6, PAL_MODE_ALTERNATIVE_2);  /* MOSI */  palSetPadMode(GPIOD, 3, PAL_MODE_ALTERNATIVE_2);  /* MISO */  palSetPadMode(GPIOC, 0, PAL_MODE_ALTERNATIVE_2);  /* SS   */  /*   *  Initializes the SPI driver 1.   */  spiStart(&SPID1, &spi1cfg);  /*   * Creates the blinker threads.   */  chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL);  while (1) {    chThdSleepMilliseconds(500);  }}
开发者ID:ThomasKurz,项目名称:ChibiOS-RT,代码行数:38,


示例7: 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,


示例8: 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,


示例9: main

int main(void){        halInit();    chSysInit();     /*     * Initializes the SPI driver 1.     */    spiStart(&SPID1, &spicfg);        chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL);    chThdCreateStatic(waSegThread1, sizeof(waSegThread1), NORMALPRIO+2, SegThread1, NULL);    //chThdCreateStatic(waThread2, sizeof(waThread2), NORMALPRIO+2, Thread2, NULL);    //chThdCreateStatic(waPWMThread2, sizeof(waPWMThread2), NORMALPRIO+1, PWMThread2, NULL);            init_digit_pins();    init_SPI1();    palSetPadMode(GPIOC, 8, PAL_MODE_OUTPUT_PUSHPULL);    palSetPadMode(GPIOC, 9, PAL_MODE_OUTPUT_PUSHPULL);//TestThread(&SD1);    while (TRUE){        palSetPad(GPIOC, 8);        //TestThread(&SD1);        chThdSleepMilliseconds(500);        palClearPad(GPIOC, 8);        chThdSleepMilliseconds(500);    }}
开发者ID:emdarcher,项目名称:chibios-tinkering,代码行数:31,


示例10: mmcStartSequentialWrite

/** * @brief   Starts a sequential write. * * @param[in] mmcp      pointer to the @p MMCDriver object * @param[in] startblk  first block to write * * @return              The operation status. * @retval HAL_SUCCESS   the operation succeeded. * @retval HAL_FAILED    the operation failed. * * @api */bool mmcStartSequentialWrite(MMCDriver *mmcp, uint32_t startblk) {  osalDbgCheck(mmcp != NULL);  osalDbgAssert(mmcp->state == BLK_READY, "invalid state");  /* Write operation in progress.*/  mmcp->state = BLK_WRITING;  spiStart(mmcp->config->spip, mmcp->config->hscfg);  spiSelect(mmcp->config->spip);  if (mmcp->block_addresses) {    send_hdr(mmcp, MMCSD_CMD_WRITE_MULTIPLE_BLOCK, startblk);  }  else {    send_hdr(mmcp, MMCSD_CMD_WRITE_MULTIPLE_BLOCK,             startblk * MMCSD_BLOCK_SIZE);  }  if (recvr1(mmcp) != 0x00U) {    spiStop(mmcp->config->spip);    mmcp->state = BLK_READY;    return HAL_FAILED;  }  return HAL_SUCCESS;}
开发者ID:mabl,项目名称:ChibiOS,代码行数:37,


示例11: mmcStartSequentialRead

/** * @brief   Starts a sequential read. * * @param[in] mmcp      pointer to the @p MMCDriver object * @param[in] startblk  first block to read * * @return              The operation status. * @retval CH_SUCCESS   the operation succeeded. * @retval CH_FAILED    the operation failed. * * @api */bool_t mmcStartSequentialRead(MMCDriver *mmcp, uint32_t startblk) {  chDbgCheck(mmcp != NULL, "mmcStartSequentialRead");  chDbgAssert(mmcp->state == BLK_READY,              "mmcStartSequentialRead(), #1", "invalid state");  /* Read operation in progress.*/  mmcp->state = BLK_READING;  /* (Re)starting the SPI in case it has been reprogrammed externally, it can     happen if the SPI bus is shared among multiple peripherals.*/  spiStart(mmcp->config->spip, mmcp->config->hscfg);  spiSelect(mmcp->config->spip);  if (mmcp->block_addresses)    send_hdr(mmcp, MMCSD_CMD_READ_MULTIPLE_BLOCK, startblk);  else    send_hdr(mmcp, MMCSD_CMD_READ_MULTIPLE_BLOCK, startblk * MMCSD_BLOCK_SIZE);  if (recvr1(mmcp) != 0x00) {    spiStop(mmcp->config->spip);    return CH_FAILED;  }  return CH_SUCCESS;}
开发者ID:Dionysios,项目名称:STM_Library_2,代码行数:37,


示例12: mmcStartSequentialRead

/** * @brief   Starts a sequential read. * * @param[in] mmcp      pointer to the @p MMCDriver object * @param[in] startblk  first block to read * @return              The operation status. * @retval FALSE        the operation was successful. * @retval TRUE         the operation failed. */bool_t mmcStartSequentialRead(MMCDriver *mmcp, uint32_t startblk) {  chDbgCheck(mmcp != NULL, "mmcStartSequentialRead");  chSysLock();  if (mmcp->mmc_state != MMC_READY) {    chSysUnlock();    return TRUE;  }  mmcp->mmc_state = MMC_READING;  chSysUnlock();  spiStart(mmcp->mmc_spip, mmcp->mmc_hscfg);  spiSelect(mmcp->mmc_spip);  send_hdr(mmcp, MMC_CMDREADMULTIPLE, startblk * MMC_SECTOR_SIZE);  if (recvr1(mmcp) != 0x00) {    spiUnselect(mmcp->mmc_spip);    chSysLock();    if (mmcp->mmc_state == MMC_READING)      mmcp->mmc_state = MMC_READY;    chSysUnlock();    return TRUE;  }  return FALSE;}
开发者ID:Nitrokey,项目名称:nitrokey-start-firmware,代码行数:34,


示例13: dma_storm_spi_start

void dma_storm_spi_start(void){  its = 0;  stop = false;  chBSemObjectInit(&sem, true);  spiStart(&SPID1, &spicfg);  spiStartExchange(&SPID1, SPI_BUF_SIZE, testbuf_flash, testbuf_ram);}
开发者ID:johnhowe,项目名称:ChibiOS-RT,代码行数:7,


示例14: mmcStartSequentialRead

/** * @brief   Starts a sequential read. * * @param[in] mmcp      pointer to the @p MMCDriver object * @param[in] startblk  first block to read * * @return              The operation status. * @retval FALSE        the operation succeeded. * @retval TRUE         the operation failed. * * @api */bool_t mmcStartSequentialRead(MMCDriver *mmcp, uint32_t startblk) {  chDbgCheck(mmcp != NULL, "mmcStartSequentialRead");  chSysLock();  if (mmcp->state != MMC_READY) {    chSysUnlock();    return TRUE;  }  mmcp->state = MMC_READING;  chSysUnlock();  spiStart(mmcp->config->spip, mmcp->config->hscfg);  spiSelect(mmcp->config->spip);  if(mmcp->block_addresses)    send_hdr(mmcp, MMCSD_CMD_READ_MULTIPLE_BLOCK, startblk);  else    send_hdr(mmcp, MMCSD_CMD_READ_MULTIPLE_BLOCK, startblk * MMCSD_BLOCK_SIZE);  if (recvr1(mmcp) != 0x00) {    spiUnselect(mmcp->config->spip);    chSysLock();    if (mmcp->state == MMC_READING)      mmcp->state = MMC_READY;    chSysUnlock();    return TRUE;  }  return FALSE;}
开发者ID:gale320,项目名称:ChibiOS,代码行数:42,


示例15: 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,


示例16: mmcStartSequentialWrite

/** * @brief   Starts a sequential write. * * @param[in] mmcp      pointer to the @p MMCDriver object * @param[in] startblk  first block to write * @return              The operation status. * @retval FALSE        the operation succeeded. * @retval TRUE         the operation failed. * * @api */bool_t mmcStartSequentialWrite(MMCDriver *mmcp, uint32_t startblk) {  chDbgCheck(mmcp != NULL, "mmcStartSequentialWrite");  chSysLock();  if (mmcp->state != MMC_READY) {    chSysUnlock();    return TRUE;  }  mmcp->state = MMC_WRITING;  chSysUnlock();  spiStart(mmcp->spip, mmcp->hscfg);  spiSelect(mmcp->spip);  if(mmcp->block_addresses)    send_hdr(mmcp, MMC_CMDWRITEMULTIPLE, startblk);  else    send_hdr(mmcp, MMC_CMDWRITEMULTIPLE, startblk * MMC_SECTOR_SIZE);  if (recvr1(mmcp) != 0x00) {    spiUnselect(mmcp->spip);    chSysLock();    if (mmcp->state == MMC_WRITING)      mmcp->state = MMC_READY;    chSysUnlock();    return TRUE;  }  return FALSE;}
开发者ID:glockwork,项目名称:dfu,代码行数:41,


示例17: memsSetup

int memsSetup(SPIDriver *spi, uint8_t DMA) {  if (!DMA) {    spiStart(spi, &spi1cfg); // start spi    sdriver = spi;  }  return 0;}
开发者ID:Koensw,项目名称:Robot-PWS,代码行数:7,


示例18: 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,


示例19: main

int main(void) {  halInit();  chSysInit();  uint8_t i;  event_listener_t tel;  // Serial Port Setup   sdStart(&SD1, NULL);  palSetPadMode(GPIOC, 4, PAL_MODE_ALTERNATE(7));  palSetPadMode(GPIOC, 5, PAL_MODE_ALTERNATE(7));  chprintf((BaseSequentialStream*)&SD1, "Up and Running/n/r");  palSetPadMode(GPIOB, 3, PAL_MODE_ALTERNATE(6));     /* SCK. */  palSetPadMode(GPIOB, 4, PAL_MODE_ALTERNATE(6));     /* MISO.*/  palSetPadMode(GPIOB, 5, PAL_MODE_ALTERNATE(6));     /* MOSI.*/  palSetPadMode(GPIOC, GPIOC_PIN1, PAL_MODE_OUTPUT_PUSHPULL);  palSetPad(GPIOC, GPIOC_PIN1);  palSetPadMode(GPIOC, GPIOC_PIN2, PAL_MODE_OUTPUT_PUSHPULL);  palClearPad(GPIOC, GPIOC_PIN2);  palSetPadMode(GPIOC, GPIOC_PIN3, PAL_MODE_INPUT_PULLUP);  spiStart(&SPID3, &nrf24l01SPI);  chMtxObjectInit(&nrfMutex);  //FROM RX---  extStart(&EXTD1, &extcfg);  //---  nrf24l01ObjectInit(&nrf24l01);  nrf24l01Start(&nrf24l01, &nrf24l01Config);    //FROM RX ---  extChannelEnable(&EXTD1, 3);  //-----    initNRF24L01(&nrf24l01);  chprintf((BaseSequentialStream*)&SD1, "/n/rUp and Running/n/r");  shellInit();  chEvtRegister(&shell_terminated, &tel, 0);  shelltp1 = shellCreate(&shell_cfg1, sizeof(waShell), NORMALPRIO);  //FROM RX---  chThdCreateStatic(recieverWorkingArea, sizeof(recieverWorkingArea), NORMALPRIO, receiverThread, NULL);  //FROM RX^^^^  /*  for (i=0;i<32;i++) {    serialOutBuf[i] = 3;  }  */  for (;;) {    chEvtDispatch(fhandlers, chEvtWaitOne(ALL_EVENTS));      }}
开发者ID:ka-ross,项目名称:Digital-Systems-Labs,代码行数:59,


示例20: halRadioSpiInit

/*********************************************************************************** * @fn          halRadioSpiInit * * @brief       Initalise Radio SPI interface * * @param       none * * @return      none */static void halRadioSpiInit(void){	palSetPad(CC2520_SPI_CSN_PORT, CC2520_SPI_CSN_PIN);	palSetPadMode(CC2520_SPI_CSN_PORT, CC2520_SPI_CSN_PIN, PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);	CC2520_ENABLE_SPI_FUNC();	spiStart(&CC2520_SPI, &spicfg);}
开发者ID:wellrun,项目名称:rise_sdvp,代码行数:17,


示例21: spiEepromDisableWrite

//----------------------------------------------------------------------------voidspiEepromDisableWrite(spiEepromDriver * sedp){	spiStart(sedp->spip, &sedp->cfgp->spicfg);	spiSelect(sedp->spip);	spiPolledExchange(sedp->spip, OP_WRDI);	spiUnselect(sedp->spip);}
开发者ID:naniBox,项目名称:kuroBox_TimeTest,代码行数:9,


示例22: 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,


示例23: SPIExchangeData

static int SPIExchangeData(SPIDriver *SPIPtr, uint8_t *TxBuf, uint8_t *RxBuf, size_t Size)  {    spiStart(SPIPtr, &HSSpiConfig); /* Setup transfer parameters.       */    spiSelect(SPIPtr); /* Slave Select assertion.          */    spiExchange(SPIPtr, Size, TxBuf, RxBuf); /* Atomic transfer operations.      */    spiUnselect(SPIPtr); /* Slave Select de-assertion.       */    return 0;  }
开发者ID:hrrr,项目名称:ChibiFlight,代码行数:8,


示例24: main

/* * Application entry point. */int main(void) {  Thread *shelltp = NULL;  /*   * System initializations.   * - HAL initialization, this also initializes the configured device drivers   *   and performs the board-specific initializations.   * - Kernel initialization, the main() function becomes a thread and the   *   RTOS is active.   */  halInit();  chSysInit();  /*   * Activates the serial driver 1 using the driver default configuration.   */  sdStart(&SERIAL_DRIVER, NULL);  /*   * Shell manager initialization.   */  shellInit();  /*   * Activates the EXT driver.   */  extStart(&EXTD1, &extcfg);  /*   * Activates the I2C driver.   */  i2cStart(&I2C_DRIVER, &i2c1cfg);  /*   * Activates the SPI driver.   */  spiStart(&SPI_DRIVER, &spi1cfg);  /*   * Creates the blinker thread.   */  chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL);  /*   * Normal main() thread activity, in this demo it does nothing except   * sleeping in a loop and check the button state.   */  while (TRUE) {    if (!shelltp)      shelltp = shellCreate(&shell_cfg1, SHELL_WA_SIZE, NORMALPRIO - 1);    else if (chThdTerminated(shelltp)) {      chThdRelease(shelltp);      shelltp = NULL;    }    chThdSleepMilliseconds(200);  }}
开发者ID:garychan,项目名称:R2P_IMU_module,代码行数:60,


示例25: spiEepromWriteSR

//----------------------------------------------------------------------------void spiEepromWriteSR(spiEepromDriver * sedp, uint8_t sr){	spiStart(sedp->spip, &sedp->cfgp->spicfg);	spiSelect(sedp->spip);	spiPolledExchange(sedp->spip, OP_WRSR);	spiPolledExchange(sedp->spip, sr);	spiUnselect(sedp->spip);}
开发者ID:naniBox,项目名称:kuroBox_TimeTest,代码行数:10,


示例26: xflash_txn_begin

static voidxflash_txn_begin(){#if SPI_USE_MUTUAL_EXCLUSION  spiAcquireBus(SPI_FLASH);#endif  spiStart(SPI_FLASH, &flash_spi_cfg);  spiSelect(SPI_FLASH);}
开发者ID:jaumann,项目名称:model-t,代码行数:9,


示例27: SPISendData

static int SPISendData(SPIDriver *SPIPtr, uint8_t *TxBuf, size_t Size)  {    spiStart(SPIPtr, &HSSpiConfig); /* Setup transfer parameters.       */    spiSelect(SPIPtr); /* Slave Select assertion.          */    spiSend(SPIPtr, Size, TxBuf); /* Send command                     */    spiUnselect(SPIPtr); /* Slave Select de-assertion.       */    spiStop(SPIPtr);    return 0;  }
开发者ID:hrrr,项目名称:ChibiFlight,代码行数:9,


示例28: sendToPot

static void sendToPot(Mcp42010Driver *driver, int channel, int value) {	lockSpi(SPI_NONE);	spiStart(driver->spi, &driver->spiConfig);	spiSelect(driver->spi);	int word = (17 + channel) * 256 + value;	spiSend(driver->spi, 1, &word);	spiUnselect(driver->spi);	spiStop(driver->spi);	unlockSpi();}
开发者ID:Vijay1190,项目名称:rusefi,代码行数:10,


示例29: 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,



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


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