实现电机,按键,虚拟串口,未验证
This commit is contained in:
@@ -5,7 +5,6 @@
|
||||
#include "rtthread.h"
|
||||
#include <rthw.h>
|
||||
#include "string.h"
|
||||
#include "stm32mp1xx.h"
|
||||
|
||||
|
||||
struct dev_struct{
|
||||
@@ -17,7 +16,7 @@ struct dev_struct{
|
||||
|
||||
typedef struct __uart_def{
|
||||
const char *name;
|
||||
int (*init)(struct __uart_def *u);
|
||||
int (*init)(struct __uart_def *u,int bsp);
|
||||
int (*deinit)(struct __uart_def *u);
|
||||
int (*set_irq)(struct __uart_def *u,void (*irq)(void *t,uint8_t d),void *t);
|
||||
int (*set_end_irq)(struct __uart_def *u,uint8_t *rx_buff,int rx_buff_size,
|
||||
@@ -41,7 +40,13 @@ typedef struct __pwm_def{
|
||||
}pwm_def;
|
||||
|
||||
|
||||
|
||||
typedef struct __gpioin_def{
|
||||
const char *name;
|
||||
int (*init)(struct __gpioin_def *u);
|
||||
int (*deinit)(struct __gpioin_def *u);
|
||||
int (*state)(struct __gpioin_def *u);
|
||||
void *private_data;
|
||||
}gpioin_def;
|
||||
|
||||
|
||||
|
||||
@@ -89,7 +94,22 @@ typedef struct __pwm_def{
|
||||
RT_USED static const struct dev_struct __dev_##name_ SECTION("devstruct")= \
|
||||
{ \
|
||||
__dev_##name_##_name, \
|
||||
&_pwm_##name_, \
|
||||
&_pwm_##name_,\
|
||||
};
|
||||
|
||||
#define gpioin_init_export(name_,init_,deinit_,state_,priv_) \
|
||||
const static char __dev_##name_##_name[] SECTION(".rodata.devstr") = #name_; \
|
||||
RT_USED static gpioin_def _gpioin_##name_={\
|
||||
.name=__dev_##name_##_name,\
|
||||
.init=init_,\
|
||||
.deinit=deinit_,\
|
||||
.state=state_,\
|
||||
.private_data=priv_,\
|
||||
};\
|
||||
RT_USED static const struct dev_struct __dev_##name_ SECTION("devstruct")= \
|
||||
{ \
|
||||
__dev_##name_##_name, \
|
||||
&_gpioin_##name_,\
|
||||
};
|
||||
|
||||
|
||||
@@ -132,7 +152,7 @@ void param_err_handle(const char *param,const char *file,const char *fun,int lin
|
||||
|
||||
void cpy4byte(uint32_t *dst,uint32_t *src,int num_4byte);
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD>s==0,<EFBFBD><EFBFBD><EFBFBD>ӡ
|
||||
// 如果s==0,则打印
|
||||
#define param_check(s) \
|
||||
if((s)==0){\
|
||||
param_err_handle(#s,__FILE__,__func__,__LINE__);}
|
||||
@@ -177,12 +197,12 @@ void __interrupt_enable(uint32_t level);
|
||||
#define MEM_ADDR(addr) *((volatile uint32_t *)(addr))
|
||||
#define BIT_ADDR(addr, bitnum) (MEM_ADDR(BITBAND(addr, bitnum)))
|
||||
|
||||
// <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַs=A~I
|
||||
// 获取输出寄存器地址s=A~I
|
||||
#define GPIOx_ODR_ADDR(s) (GPIO##s##_BASE+20)
|
||||
// <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַs=A~I
|
||||
// 获取输入寄存器地址s=A~I
|
||||
#define GPIOx_IDR_ADDR(s) (GPIO##s##_BASE+16)
|
||||
|
||||
// gpio<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>s=A~I,n=0~15
|
||||
// gpio输出,s=A~I,n=0~15
|
||||
#define PINOUT(s,n) BIT_ADDR(GPIOx_ODR_ADDR(s),n)
|
||||
#define PININ(s,n) BIT_ADDR(GPIOx_IDR_ADDR(s),n)
|
||||
|
||||
|
Reference in New Issue
Block a user