ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
12 июля
417253
Белый Жрец (13.06.2013 12:52, просмотров: 2105)
Не ругайте сильно если было - макросы для работы с bit-band alias для STM...  #define bb_periph_bit(reg,bit) (*((u32 *)((((u32)(&(reg))-PERIPH_BASE)*0x20+bit*4)+PERIPH_BB_BASE))) #define bb_sram_bit(var,bit) (*((u32 *)((((u32)(&(var))-SRAM_BASE)*0x20+bit*4)+SRAM_BB_BASE))) inline void DB(u8 x){ // распределение по ногам static u32 tmp; tmp=(u32)x; bb_periph_bit(GPIOE->ODR,2) =bb_sram_bit(tmp,0); // 0 бит bb_periph_bit(GPIOE->ODR,3) =bb_sram_bit(tmp,1); // 1 бит bb_periph_bit(GPIOD->ODR,7) =bb_sram_bit(tmp,2); // 2 бит bb_periph_bit(GPIOD->ODR,6) =bb_sram_bit(tmp,3); // 3 бит bb_periph_bit(GPIOD->ODR,5) =bb_sram_bit(tmp,4); // 4 бит bb_periph_bit(GPIOD->ODR,4) =bb_sram_bit(tmp,5); // 5 бит bb_periph_bit(GPIOD->ODR,3) =bb_sram_bit(tmp,6); // 6 бит bb_periph_bit(GPIOD->ODR,10)=bb_sram_bit(tmp,7); // 7 бит }