两只袜子 发表于 2022-11-11 13:00

国产单片机航顺HK32F030如何实现带位操作?

国产单片机航顺HK32F030如何实现带位操作?

tlhmcu 发表于 2022-11-24 10:55

//把下面的代码放在.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

geraldbetty 发表于 2022-12-1 17:31

位操作的方式有很多的 。            

olivem55arlowe 发表于 2022-12-1 17:40

这个可以参考stm32的代码               

maqianqu 发表于 2022-12-1 18:44

参考contexm3的指南。            

updownq 发表于 2022-12-1 19:14

HK32F030的性能怎么样            

uytyu 发表于 2022-12-1 21:26

库函数里面没有这个实现的代码吗            

belindagraham 发表于 2022-12-2 19:28

stm32的例程上有的,需要确定寄存器的地址

AloneKaven 发表于 2023-1-3 17:24

可以参考stm32的代码   

sr19861126 发表于 2023-12-29 09:09

tlhmcu 发表于 2022-11-24 10:55
//把下面的代码放在.h的头文件里,就可以像正点原子一样进行端口的位操作了(这是我用在HK32F030M芯片上的)
...

这个用不了
页: [1]
查看完整版本: 国产单片机航顺HK32F030如何实现带位操作?