Преглед на файлове

fix:spi mode 1和2反了

alienwalker преди 4 години
родител
ревизия
49e2790d41
променени са 3 файла, в които са добавени 18 реда и са изтрити 18 реда
  1. 2 2
      application/src/luat_camera_air105.c
  2. 8 8
      application/src/luat_spi_air105.c
  3. 8 8
      bsp/air105/hal/core_spi.c

+ 2 - 2
application/src/luat_camera_air105.c

@@ -80,8 +80,8 @@ static int32_t Camera_DrawLcd(void *DrawData, uint8_t Scan){
     draw->DCDelay = lcd_conf->dc_delay_us;
     draw->Mode = SPI_MODE_0;
     if(CPHA&&CPOL)draw->Mode = SPI_MODE_3;
-    else if(CPOL)draw->Mode = SPI_MODE_1;
-    else if(CPHA)draw->Mode = SPI_MODE_2;
+    else if(CPOL)draw->Mode = SPI_MODE_2;
+    else if(CPHA)draw->Mode = SPI_MODE_1;
     draw->Speed = ((luat_spi_device_t*)(lcd_conf->userdata))->spi_config.bandrate;
     if (((luat_spi_device_t*)(lcd_conf->userdata))->bus_id == 5) draw->SpiID = HSPI_ID0;
     else draw->SpiID = ((luat_spi_device_t*)(lcd_conf->userdata))->bus_id;

+ 8 - 8
application/src/luat_spi_air105.c

@@ -62,8 +62,8 @@ int32_t luat_spi_cb(void *pData, void *pParam){
 int luat_spi_device_config(luat_spi_device_t* spi_dev) {
     uint8_t spi_mode = SPI_MODE_0;
     if(spi_dev->spi_config.CPHA&&spi_dev->spi_config.CPOL)spi_mode = SPI_MODE_3;
-    else if(spi_dev->spi_config.CPOL)spi_mode = SPI_MODE_1;
-    else if(spi_dev->spi_config.CPHA)spi_mode = SPI_MODE_2;
+    else if(spi_dev->spi_config.CPOL)spi_mode = SPI_MODE_2;
+    else if(spi_dev->spi_config.CPHA)spi_mode = SPI_MODE_1;
     SPI_SetNewConfig(luat_spi[spi_dev->bus_id].id, spi_dev->spi_config.bandrate, spi_mode);
     return 0;
 }
@@ -99,8 +99,8 @@ int luat_spi_bus_setup(luat_spi_device_t* spi_dev){
     }
     uint8_t spi_mode = SPI_MODE_0;
     if(spi_dev->spi_config.CPHA&&spi_dev->spi_config.CPOL)spi_mode = SPI_MODE_3;
-    else if(spi_dev->spi_config.CPOL)spi_mode = SPI_MODE_1;
-    else if(spi_dev->spi_config.CPHA)spi_mode = SPI_MODE_2;
+    else if(spi_dev->spi_config.CPOL)spi_mode = SPI_MODE_2;
+    else if(spi_dev->spi_config.CPHA)spi_mode = SPI_MODE_1;
     luat_spi[bus_id].mode=spi_dev->spi_config.mode;
     // LLOGD("SPI_MasterInit luat_bus_%d:%d dataw:%d spi_mode:%d bandrate:%d ",bus_id,luat_spi[bus_id].id, spi_dev->spi_config.dataw, spi_mode, spi_dev->spi_config.bandrate);
     SPI_MasterInit(luat_spi[bus_id].id, spi_dev->spi_config.dataw, spi_mode, spi_dev->spi_config.bandrate, luat_spi_cb, NULL);
@@ -148,8 +148,8 @@ int luat_spi_setup(luat_spi_t* spi) {
     }
     uint8_t spi_mode = SPI_MODE_0;
     if(spi->CPHA&&spi->CPOL)spi_mode = SPI_MODE_3;
-    else if(spi->CPOL)spi_mode = SPI_MODE_1;
-    else if(spi->CPHA)spi_mode = SPI_MODE_2;
+    else if(spi->CPOL)spi_mode = SPI_MODE_2;
+    else if(spi->CPHA)spi_mode = SPI_MODE_1;
     luat_spi[spi_id].mode=spi->mode;
     // LLOGD("SPI_MasterInit luat_spi%d:%d dataw:%d spi_mode:%d bandrate:%d ",spi_id,luat_spi[spi_id], spi->dataw, spi_mode, spi->bandrate);
     SPI_MasterInit(luat_spi[spi_id].id, spi->dataw, spi_mode, spi->bandrate, luat_spi_cb, NULL);
@@ -217,8 +217,8 @@ int luat_lcd_draw_no_block(luat_lcd_conf_t* conf, uint16_t x1, uint16_t y1, uint
 		int spi_id = spi_dev->bus_id;
 	    uint8_t spi_mode = SPI_MODE_0;
 	    if(spi_dev->spi_config.CPHA&&spi_dev->spi_config.CPOL)spi_mode = SPI_MODE_3;
-	    else if(spi_dev->spi_config.CPOL)spi_mode = SPI_MODE_1;
-	    else if(spi_dev->spi_config.CPHA)spi_mode = SPI_MODE_2;
+	    else if(spi_dev->spi_config.CPOL)spi_mode = SPI_MODE_2;
+	    else if(spi_dev->spi_config.CPHA)spi_mode = SPI_MODE_1;
 	    draw->DCDelay = conf->dc_delay_us;
 	    draw->Mode = spi_mode;
 	    draw->Speed = spi_dev->spi_config.bandrate;

+ 8 - 8
bsp/air105/hal/core_spi.c

@@ -358,10 +358,10 @@ static void HSPI_MasterInit(uint8_t SpiID, uint8_t Mode, uint32_t Speed)
 	case SPI_MODE_0:
 		break;
 	case SPI_MODE_1:
-		ctrl |= (1 << HSPIM_CR0_PARAM_CPOL_POS);
+		ctrl |= (1 << HSPIM_CR0_PARAM_CPHA_POS);
 		break;
 	case SPI_MODE_2:
-		ctrl |= (1 << HSPIM_CR0_PARAM_CPHA_POS);
+		ctrl |= (1 << HSPIM_CR0_PARAM_CPOL_POS);
 		break;
 	case SPI_MODE_3:
 		ctrl |= (1 << HSPIM_CR0_PARAM_CPOL_POS)|(1 << HSPIM_CR0_PARAM_CPHA_POS);
@@ -408,10 +408,10 @@ void SPI_MasterInit(uint8_t SpiID, uint8_t DataBit, uint8_t Mode, uint32_t Speed
 		case SPI_MODE_0:
 			break;
 		case SPI_MODE_1:
-			ctrl |= SPI_CTRLR0_SCPOL;
+			ctrl |= SPI_CTRLR0_SCPH;
 			break;
 		case SPI_MODE_2:
-			ctrl |= SPI_CTRLR0_SCPH;
+			ctrl |= SPI_CTRLR0_SCPOL;
 			break;
 		case SPI_MODE_3:
 			ctrl |= SPI_CTRLR0_SCPOL|SPI_CTRLR0_SCPH;
@@ -1112,10 +1112,10 @@ void SPI_SetNewConfig(uint8_t SpiID, uint32_t Speed, uint8_t NewMode)
 
 			break;
 		case SPI_MODE_1:
-			HSPI->CR0 |= (1 << HSPIM_CR0_PARAM_CPOL_POS);
+			HSPI->CR0 |= (1 << HSPIM_CR0_PARAM_CPHA_POS);
 			break;
 		case SPI_MODE_2:
-			HSPI->CR0 |= (1 << HSPIM_CR0_PARAM_CPHA_POS);
+			HSPI->CR0 |= (1 << HSPIM_CR0_PARAM_CPOL_POS);
 			break;
 		case SPI_MODE_3:
 			HSPI->CR0 |= (1 << HSPIM_CR0_PARAM_CPOL_POS)|(1 << HSPIM_CR0_PARAM_CPHA_POS);
@@ -1137,10 +1137,10 @@ void SPI_SetNewConfig(uint8_t SpiID, uint32_t Speed, uint8_t NewMode)
 		case SPI_MODE_0:
 			break;
 		case SPI_MODE_1:
-			SPI->CTRLR0 |= SPI_CTRLR0_SCPOL;
+			SPI->CTRLR0 |= SPI_CTRLR0_SCPH;
 			break;
 		case SPI_MODE_2:
-			SPI->CTRLR0 |= SPI_CTRLR0_SCPH;
+			SPI->CTRLR0 |= SPI_CTRLR0_SCPOL;
 			break;
 		case SPI_MODE_3:
 			SPI->CTRLR0 |= SPI_CTRLR0_SCPOL|SPI_CTRLR0_SCPH;