移植到stm32f1,实现手动线赋码控制器功能

This commit is contained in:
ranchuan
2023-09-09 17:27:06 +08:00
parent 8d779a68f3
commit 7baa63de05
382 changed files with 36618 additions and 148064 deletions

View File

@@ -1,17 +1,19 @@
#include "board.h"
#include "stm32f4xx.h"
#include "stm32f10x.h"
/*
// PB6,7,8,9
// 输入脚
输入通道对应关系
PC3|PC2|PC1|PC0|PB9|PB8|PB7|PB6|PB5|PC12
IN0|IN1|IN2|IN3|IN4|IN5|IN6|IN7|IN8|IN9
#define GPIO_Initer() {.GPIO_Mode=GPIO_Mode_IN,\
.GPIO_Speed=GPIO_Speed_100MHz,\
.GPIO_OType=GPIO_OType_PP,\
.GPIO_PuPd=GPIO_PuPd_UP \
*/
#define GPIO_Initer() {.GPIO_Speed=GPIO_Speed_50MHz,\
.GPIO_Mode=GPIO_Mode_IPU,\
}
@@ -28,37 +30,85 @@ typedef struct{
static const gpioin_dtb g_dtb[]={
{
.name="gpioin0",
.gpio_clock_fun=RCC_APB2PeriphClockCmd,
.gpio_rcc=RCC_APB2Periph_GPIOC,
.gpio_base=GPIOC,
.gpio_pin=3,
.bitmap_pin=&PININ(C,3),
},
{
.name="gpioin1",
.gpio_clock_fun=RCC_AHB1PeriphClockCmd,
.gpio_rcc=RCC_AHB1Periph_GPIOB,
.gpio_base=GPIOB,
.gpio_pin=6,
.bitmap_pin=&PININ(B,6),
.gpio_clock_fun=RCC_APB2PeriphClockCmd,
.gpio_rcc=RCC_APB2Periph_GPIOC,
.gpio_base=GPIOC,
.gpio_pin=2,
.bitmap_pin=&PININ(C,2),
},
{
.name="gpioin2",
.gpio_clock_fun=RCC_AHB1PeriphClockCmd,
.gpio_rcc=RCC_AHB1Periph_GPIOB,
.gpio_base=GPIOB,
.gpio_pin=7,
.bitmap_pin=&PININ(B,7),
.gpio_clock_fun=RCC_APB2PeriphClockCmd,
.gpio_rcc=RCC_APB2Periph_GPIOC,
.gpio_base=GPIOC,
.gpio_pin=1,
.bitmap_pin=&PININ(C,1),
},
{
.name="gpioin3",
.gpio_clock_fun=RCC_AHB1PeriphClockCmd,
.gpio_rcc=RCC_AHB1Periph_GPIOB,
.gpio_clock_fun=RCC_APB2PeriphClockCmd,
.gpio_rcc=RCC_APB2Periph_GPIOC,
.gpio_base=GPIOC,
.gpio_pin=0,
.bitmap_pin=&PININ(C,0),
},
{
.name="gpioin4",
.gpio_clock_fun=RCC_APB2PeriphClockCmd,
.gpio_rcc=RCC_APB2Periph_GPIOB,
.gpio_base=GPIOB,
.gpio_pin=9,
.bitmap_pin=&PININ(B,9),
},
{
.name="gpioin5",
.gpio_clock_fun=RCC_APB2PeriphClockCmd,
.gpio_rcc=RCC_APB2Periph_GPIOB,
.gpio_base=GPIOB,
.gpio_pin=8,
.bitmap_pin=&PININ(B,8),
},
{
.name="gpioin4",
.gpio_clock_fun=RCC_AHB1PeriphClockCmd,
.gpio_rcc=RCC_AHB1Periph_GPIOB,
.name="gpioin6",
.gpio_clock_fun=RCC_APB2PeriphClockCmd,
.gpio_rcc=RCC_APB2Periph_GPIOB,
.gpio_base=GPIOB,
.gpio_pin=9,
.bitmap_pin=&PININ(B,9),
.gpio_pin=7,
.bitmap_pin=&PININ(B,7),
},
{
.name="gpioin7",
.gpio_clock_fun=RCC_APB2PeriphClockCmd,
.gpio_rcc=RCC_APB2Periph_GPIOB,
.gpio_base=GPIOB,
.gpio_pin=6,
.bitmap_pin=&PININ(B,6),
},
{
.name="gpioin8",
.gpio_clock_fun=RCC_APB2PeriphClockCmd,
.gpio_rcc=RCC_APB2Periph_GPIOB,
.gpio_base=GPIOB,
.gpio_pin=5,
.bitmap_pin=&PININ(B,5),
},
{
.name="gpioin9",
.gpio_clock_fun=RCC_APB2PeriphClockCmd,
.gpio_rcc=RCC_APB2Periph_GPIOC,
.gpio_base=GPIOC,
.gpio_pin=12,
.bitmap_pin=&PININ(C,12),
},
};
@@ -105,14 +155,21 @@ static int state(gpioin_def *g)
param_check(g);
param_check(g->private_data);
self_data *self=g->private_data;
return *self->dtb->bitmap_pin;
// 电路上0为导通逻辑上1为真这里反向
return !(*self->dtb->bitmap_pin);
}
gpioin_init_export(gpioin0,init,deinit,state,0)
gpioin_init_export(gpioin1,init,deinit,state,0)
gpioin_init_export(gpioin2,init,deinit,state,0)
gpioin_init_export(gpioin3,init,deinit,state,0)
gpioin_init_export(gpioin4,init,deinit,state,0)
gpioin_init_export(gpioin5,init,deinit,state,0)
gpioin_init_export(gpioin6,init,deinit,state,0)
gpioin_init_export(gpioin7,init,deinit,state,0)
gpioin_init_export(gpioin8,init,deinit,state,0)
gpioin_init_export(gpioin9,init,deinit,state,0)