国产单片机航顺HK32F030如何实现带位操作?
国产单片机航顺HK32F030如何实现带位操作? //把下面的代码放在.h的头文件里,就可以像正点原子一样进行端口的位操作了(这是我用在HK32F030M芯片上的)//--------------------------------------------------------------------------------------------
#ifdef __cplusplus
extern "C" {
#endif
typedef struct
{
u16 bit0 : 1;
u16 bit1 : 1;
u16 bit2 : 1;
u16 bit3 : 1;
u16 bit4 : 1;
u16 bit5 : 1;
u16 bit6 : 1;
u16 bit7 : 1;
u16 bit8 : 1;
u16 bit9 : 1;
u16 bit10 : 1;
u16 bit11 : 1;
u16 bit12 : 1;
u16 bit13 : 1;
u16 bit14 : 1;
u16 bit15 : 1;
}Bits16_TypeDef;
//IO口操作,只对单一的IO口!
//确保n的值小于16!
#define PAout(n) ( ((Bits16_TypeDef *)(&(GPIOA->ODR)))->bit##n )
#define PAin(n) ( ( GPIOA->IDR&(1 << (n)) )>>n )//输入
#define PBout(n) ( ((Bits16_TypeDef *)(&(GPIOB->ODR)))->bit##n )
#define PBin(n) ( ( GPIOB->IDR&(1 << (n)) )>>n )//输入
#define PCout(n) ( ((Bits16_TypeDef *)(&(GPIOC->ODR)))->bit##n )
#define PCin(n) ( ( GPIOC->IDR&(1 << (n)) )>>n )//输入
#define PDout(n) ( ((Bits16_TypeDef *)(&(GPIOD->ODR)))->bit##n )
#define PDin(n) ( ( GPIOD->IDR&(1 << (n)) )>>n )//输入
#ifdef __cplusplus
}
#endif
位操作的方式有很多的 。 这个可以参考stm32的代码 参考contexm3的指南。 HK32F030的性能怎么样 库函数里面没有这个实现的代码吗 stm32的例程上有的,需要确定寄存器的地址 可以参考stm32的代码 tlhmcu 发表于 2022-11-24 10:55
//把下面的代码放在.h的头文件里,就可以像正点原子一样进行端口的位操作了(这是我用在HK32F030M芯片上的)
...
这个用不了
页:
[1]