This repository has been archived on 2024-05-28. You can view files and clone it, but cannot push or open issues or pull requests.
stm32u5_cargo/stm32u5/examples/cam_board/custom_prephrals.cpp
2023-11-14 16:25:09 -05:00

75 lines
1.7 KiB
C++
Executable File

//
// Created by Guangzong Chen on 8/5/23.
//
#include "custom_prephrals.h"
#include "bsp.h"
GpioPin<&pc, 3> led1;
GpioPin<&pc, 4> led2;
GpioPin<&pc, 5> led3;
GpioPin<&pb, 4> i2c3_sda;
GpioPin<&pc, 0> i2c3_scl;
GpioPin<&pb, 0> cam_pdwn;
GpioPin<&pb, 1> cam_resetb;
GpioPin<&pa, 8> cam_xclk; // tim1 ch1
GpioPin<&pc, 6> cam_d0;
GpioPin<&pc, 7> cam_d1;
GpioPin<&pc, 8> cam_d2;
GpioPin<&pc, 9> cam_d3;
GpioPin<&pc, 11> cam_d4;
GpioPin<&pb, 6> cam_d5;
GpioPin<&pb, 8> cam_d6;
GpioPin<&pb, 9> cam_d7;
GpioPin<&pb, 7> cam_vsync;
GpioPin<&pa, 4> cam_hsync;
GpioPin<&pa, 6> cam_pclk;
GpioPin<&pb, 2> cus_btn;
GpioPin<&pc, 1> sd_ck;
GpioPin<&pa, 0> sd_cmd;
GpioPin<&pb, 14> sd_d0;
void setup_pins() {
led1.setup(), led2.setup(), led3.setup();
i2c3_sda.setup(AF, 4, OPEN_DRAIN, LL_PULLUP);
i2c3_scl.setup(AF, 4, OPEN_DRAIN, LL_PULLUP);
cam_pdwn.setup(), cam_resetb.setup();
cam_xclk.setup(AF, 1);
cam_d0.setup(AF, 10);
cam_d1.setup(AF, 10);
cam_d2.setup(AF, 10);
cam_d3.setup(AF, 4);
cam_d4.setup(AF, 10);
cam_d5.setup(AF, 10);
cam_d6.setup(AF, 10);
cam_d7.setup(AF, 10);
cam_pclk.setup(AF, 4);
cam_hsync.setup(AF, 10);
cam_vsync.setup(AF, 10);
cus_btn.setup(INPUT, 0, PULL_PUSH, LL_PULLUP); // The circuit should be change
// delay.ms(100, true);
sd_ck.setup(AF, 12);
sd_cmd.setup(AF, 12);
sd_d0.setup(AF, 12);
}
void setup_timer() {
tim1.init_default();
tim1.set_pwm(CH1, 4, 4);
tim1.enable_output(CH1); // tim1 init_old
}
void cam_board_init(){
system_init();
setup_prepherials();
setup_pins(), setup_timer(), cam_i2c.init();
cam_pdwn.set_low();
cam_resetb.set_high();
}