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

Merge pull request #3362 from bigmagic123/fix_spi

Fix spi
Bernard Xiong преди 5 години
родител
ревизия
cd8dd40cd2
променени са 2 файла, в които са добавени 9 реда и са изтрити 10 реда
  1. 3 3
      bsp/raspberry-pi/raspi3-32/README.md
  2. 6 7
      bsp/raspberry-pi/raspi3-32/driver/drv_spi.c

+ 3 - 3
bsp/raspberry-pi/raspi3-32/README.md

@@ -35,16 +35,16 @@ RT-Thread对树莓派的支持主要从树莓派2B开始,它是一个四核Cor
 
 Windows环境下推荐使用[env工具][1]进行编译。
 
-Linux下推荐使用gcc工具 [gcc-arm-none-eabi-4_8-2014q1_linux][2],如果还没有编译工具,下载后,解开文件。
+Linux下推荐使用gcc工具 gcc-arm-none-eabi-5_4-2016q3,如果还没有编译工具,下载后,解开文件。
 
 ```
-tar vxf gcc-arm-none-eabi-4_8-2014q1_linux.tar.bz2
+tar vxf gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2
 ```
 
 Linux环境下需要修改编译器目录设置,修改`bsp/raspi3-32/rtconfig.py`中的
 
 ```
-EXEC_PATH = r'/opt/gcc-arm-none-eabi-4_8-2014q1_gri/bin'
+EXEC_PATH = r'/opt/gcc-arm-none-eabi-5_4-2016q3/bin'
 ```
 
 为编译工具的实际所在目录,这里注意要加上后缀 `/bin`

+ 6 - 7
bsp/raspberry-pi/raspi3-32/driver/drv_spi.c

@@ -18,9 +18,9 @@
 void spi_gpio_write(rt_uint8_t pin, rt_uint8_t val)
 {
     if (val)
-        BCM283X_GPIO_GPSET(pin / 32) = 1 << (pin % 32);
+        BCM283X_GPIO_GPSET((pin / 32)) = 1 << (pin % 32);
     else
-        BCM283X_GPIO_GPCLR(pin / 32) = 0 << (pin % 32);
+        BCM283X_GPIO_GPCLR((pin / 32)) = 1 << (pin % 32);
 }
 
 struct raspi_spi_hw_config
@@ -147,11 +147,10 @@ static rt_uint32_t raspi_spi_xfer(struct rt_spi_device *device, struct rt_spi_me
         flag = 0;
     else
         flag = 1;
-
-    if (message->cs_take)
-        (config.mode & RT_SPI_CS_HIGH)?
-                spi_gpio_write(cs_pin, 1):
-                spi_gpio_write(cs_pin, 0);
+    if (message->cs_take);
+      //  (config.mode & RT_SPI_CS_HIGH)?
+      //          spi_gpio_write(cs_pin, 1):
+      //          spi_gpio_write(cs_pin, 0);
 
     /* deal data */
     res = spi_transfernb((rt_uint8_t *)message->send_buf, (rt_uint8_t *)message->recv_buf,