adc是用的ad9280芯片,8位,32Mhz
先宏定义引脚
#define D0 GPIO_PIN_16
#define D1 GPIO_PIN_17
#define D2 GPIO_PIN_15
#define D3 GPIO_PIN_1
#define D4 GPIO_PIN_12
#define D5 GPIO_PIN_14
#define D6 GPIO_PIN_25
#define D7 GPIO_PIN_0
初始化引脚
- bflb_gpio_init(gpio, CLK, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
- bflb_gpio_init(gpio, D0, GPIO_INPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
- bflb_gpio_init(gpio, D1, GPIO_INPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
- bflb_gpio_init(gpio, D2, GPIO_INPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
- bflb_gpio_init(gpio, D3, GPIO_INPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
- bflb_gpio_init(gpio, D4, GPIO_INPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
- bflb_gpio_init(gpio, D5, GPIO_INPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
- bflb_gpio_init(gpio, D6, GPIO_INPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
- bflb_gpio_init(gpio, D7, GPIO_INPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
- bflb_gpio_init(gpio, BRT, GPIO_INPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
复制代码
程序是用的老王的
https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=44096&_dsign=02a36b4b
程序直接改的,我屏幕驱动是ILI9486,改了一下颜色代码就可以用了
程序直接读取引脚值和满标志位的值
- adc_data[0]=bflb_gpio_read(gpio, D0);
- adc_data[1]=bflb_gpio_read(gpio, D1);
- adc_data[2]=bflb_gpio_read(gpio, D2);
- adc_data[3]=bflb_gpio_read(gpio, D3);
- adc_data[4]=bflb_gpio_read(gpio, D4);
- adc_data[5]=bflb_gpio_read(gpio, D5);
- adc_data[6]=bflb_gpio_read(gpio, D6);
- adc_data[7]=bflb_gpio_read(gpio, D7);
- combined_data=(adc_data[7]<<7)+(adc_data[6]<<6)+(adc_data[5]<<5)+(adc_data[4]<<4)+(adc_data[3]<<3)+(adc_data[2]<<2)+(adc_data[1]<<1)+(adc_data[0]);
- adc_BRT=bflb_gpio_read(gpio, BRT);
-
复制代码
通过计算得到最后adc的值
- converted_value = (adc_BRT == 1) ? 999 : (5 / 127.0 * combined_data) - 5;
复制代码
结果展示
0V
工程代码
SPI_3_5.rar
(20.52 KB, 下载次数: 0)
|