帮忙解释下这段程序

2019-03-23 15:43发布

  temp = ((uint32_t)(GPIO_AF) << ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4)) ;
  GPIOx->AFR[GPIO_PinSource >> 0x03] &= ~((uint32_t)0xF << ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4)) ;
  temp_2 = GPIOx->AFR[GPIO_PinSource >> 0x03] | temp;
  GPIOx->AFR[GPIO_PinSource >> 0x03] = temp_2;
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
shijizai
2019-03-24 00:52
本帖最后由 shijizai 于 2018-7-20 10:25 编辑

还是使用寄存器配置比较舒服,看着这些官方提供的就头晕脑胀的,不喜欢,

寄存器

寄存器我也有问题,


#define DS18B20_IO_IN1()  {GPIOA->MODER&= 0<<30;GPIOA->MODER&= 0<<31;GPIOA->MODER|=0<<15*2;}        

#define DS18B20_IO_OUT1() {GPIOA->MODER&= 0<<30;GPIOA->MODER&= 0<<31;GPIOA>MODER|=1<<15*2;}         
这个是stm32F405的操作,我想对PA15先清零然后再赋值,(不巧PA15旁边的PA14、PA13是我的下载引脚)大神看看这两句话那个地方不对,我一下这段程序板子就烧不进去程序,而且下完这个程序以后板子就再也烧不进去程序了


一周热门 更多>