Thông báo

Collapse
No announcement yet.

Tạo kết nối I2C ảo trên chip STM32F429

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Tạo kết nối I2C ảo trên chip STM32F429

    Chào các bạn,
    MÌnh có nhu cầu kết nối cảm biến gia tốc MMA8452Q với vi điều khiển STM32F429 trên board STM32F429 Discovery. 02 cổng I2C 1 và 2 trên board này đã được dùng cho việc khác, cổng I2C số 3 được dùng giao tiếp với cảm ứng của màn hình. Do đó mình tự tạo một cổng giao tiếp I2C mới sử dụng chân số 9, 10 của cổng A và cấu hình cổng như sau:

    GPIO_InitTypeDef gpio_init;
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);

    gpio_init.GPIO_Mode = GPIO_Mode_AF;
    gpio_init.GPIO_Pin = SDA| SCL;
    gpio_init.GPIO_PuPd = GPIO_PuPd_UP;
    gpio_init.GPIO_OType = GPIO_OType_OD;
    GPIO_Init(GPIOA, &gpio_init);

    trong đó SCL = Pin9, SDA = Pin10.

    Tuy nhiên khi mình thử thay đổi trạng thái của các chân SCL và SDA đều không được. Chắc chắn mình cấu hình các chân chưa chuẩn nhưng mình không tìm được nguyên nhân. Các bạn có thể giúp mình sửa đoạn code trên được không ạ?
    |

  • #2
    Code của bạn đang cài đặt SCL và SDA ở chế độ Alternate Function (trạng thái của chân do các module ngoại vi (vd: USART, SPI, I2C...) quyết định). Nếu muốn điều khiển trạng thái của chân thì cần cài đặt chế độ của chân là Output GPIO.

    gpio_init.GPIO_Mode = GPIO_Mode_OUT;

    Comment

    Về tác giả

    Collapse

    jveron Tìm hiểu thêm về jveron

    Bài viết mới nhất

    Collapse

    Đang tải...
    X