首页 > 其他分享 >esp32 spi 正常一个标准流程

esp32 spi 正常一个标准流程

时间:2022-09-06 00:55:22浏览次数:48  
标签:10 buffer esp32 0x00 SPITransaction2 spi 流程 recv2

uint8_t cmd[10] = {0x55, 0x00, 0xB0, 0x99, 0x00, 0x00, 0x02, 0x00, 0x08, 0x00};
	cmd[9] = getLRCx(&cmd[1], 8);
	char sendbuf[10];
	char recvbuf[10];

	memcpy(sendbuf, cmd, 10);

	// vSetSSN(0);
	//	 vSetMOSI(1);
	//	  vSetMISO(1);
	// vSetSCK(1);

	vSetSSN(0);
	vTaskDelay(pdMS_TO_TICKS(100));
 
	spi_transaction_t SPITransaction;
	memset(&SPITransaction, 0, sizeof(spi_transaction_t));
	SPITransaction.length = 10 * 8;
	SPITransaction.tx_buffer = sendbuf;
	SPITransaction.rx_buffer = recvbuf;
	esp_err_t ret = spi_device_transmit(dev._SPIHandle, &SPITransaction);
	assert(ret == ESP_OK);
	if (_DEBUG_)
		ESP_LOGI(TAG, "W25Q64_readStatusReg2=%x %x %x", recvbuf[0], recvbuf[1], recvbuf[2]);
	vTaskDelay(pdMS_TO_TICKS(5));
	//	vTaskDelay(100);
	vSetSSN(1);
	vTaskDelay(pdMS_TO_TICKS(10));
	vSetSSN(0);
	vTaskDelay(pdMS_TO_TICKS(100));

	uint8_t cmd2[1] = {0x00};
	char sendbuf2[1];
	char recvbuf2[1];
	memcpy(sendbuf2, cmd2, 1);
	/*
   spi_transaction_t SPITransaction2;
   memset(&SPITransaction2, 0, sizeof(spi_transaction_t));
   SPITransaction2.length = 1 * 8;
   SPITransaction2.tx_buffer = sendbuf2;
   SPITransaction2.rx_buffer = recvbuf2;
   ret = spi_device_transmit(dev._SPIHandle, &SPITransaction2);
   */

	spi_transaction_t recv2;
	memset(&recv2, 0, sizeof(recv2));
	recv2.length = 1 * 8;
	recv2.rxlength = 1 * 8;
 	recv2.rx_buffer = recvbuf2;
    
	ret = spi_device_polling_transmit(dev._SPIHandle, &recv2);
    memcpy(recvbuf2,recv2.rx_buffer,1);
	assert(ret == ESP_OK);
	if (_DEBUG_)
		ESP_LOGI(TAG, "W25Q64_readStatusReg2=%x", recvbuf2[0]);

  

标签:10,buffer,esp32,0x00,SPITransaction2,spi,流程,recv2
From: https://www.cnblogs.com/hshy/p/16660247.html

相关文章

  • spi一个标准流程
    uint8_tcmd[10]={0x55,0x00,0xB0,0x99,0x00,0x00,0x02,0x00,0x08,0x00}; cmd[9]=getLRCx(&cmd[1],8); charsendbuf[10]; charrecvbuf[10]; memcpy(......
  • 渗透测试的基本流程
    渗透测试的基本流程主要分为以下几步:  1.明确目标  2.信息收集  3.漏洞探测(挖掘)  4.漏洞验证(利用)  5.提升权限   6.清除痕迹   7.事后信息分析  ......
  • ssm框架搭建流程
    在网上找了很多,自己总结一下,理清思路以后这种模式化的东西就简单多了。首先就是创建一个mavenapp项目,放入tomcat。这个很简单就不再赘述了。然后就是在pom.xml中导入依......
  • Settings 启动流程
    Settings启动流程Settings-->Manifest.xml-->action.MAIN-->SettingsHomepageActivitypublicclassSettingsHomepageActivityextendsFragmentActivity{ @Ov......
  • SystemUI启动流程
    SystemUI启动流程frameworks\base\services\java\com\android\server\SystemServer.javapublicfinalclassSystemServer{  privatestaticfinalTimingsTrac......
  • 流程控制
    流程控制​流程控制主要有三种结构,分别是顺序结构、分支结构、循环结构,这三种结构代表三种代码执行的顺序顺序流程控制​顺序结构是程序中最简单、最......
  • zabbix监控配置流程
    zabbix监控配置流程管理层次:开发人员要加监控,需要让其提供监控指标运营人员要加监控,让其找开发要监控指标运维人员要加监控,让运营人员去找开发要监控指标。配置层次:......
  • esp32 spi
    /*SPISlaveexample,sender(usesSPImasterdriver)ThisexamplecodeisinthePublicDomain(orCC0licensed,atyouroption.)Unlessrequiredby......
  • esp32 jia
      /*Loadservercertificate*/  externconstunsignedcharservercert_start[]asm("_binary_servercert_pem_start");  externconstunsignedchar......
  • vuex使用流程
     从状态出发,将状态提供给vue组件,组件在actions的方法中请求后端接口得到数据,然后委托给mutations(或者通过开发者工具进行更改),来改变状态。 ......