求高手指导下,怎样理解STM32中的这两句宏定义?

这两句话GPIOB->CRL|=8u<<28和GPIOB->CRL|=3<<28,就有点不了解了。

你的程序应该是错的,不能有8u这样的,应该是8!
stm32是32位机寄存器都是32位,这两句是对GPIOB->CRL寄存器的操作!
运行步骤:
8<<28,就是把8左移28位 然后与上面的寄存器 或运算,并赋值给寄存器。
前面的&=就是先清0,
不懂追问!
直接跟你说了GPIOB->CRL |= 0x1000F FF FF FF;
第二句:GPIOB->CRL |= 0011 F FF FF FF;追问

我就没搞懂为什么是8u,所以就怀疑自己是不是理解错了。但是程序上确实是8u,不过我现在好像是懂了为什么是8u了。

追答

8u要么是定义了,如果单独的8u是不可能的

追问

不是定义。我们主管跟我说,只是为了避免左移后,最高 位的1 变成符号位。不知道这种说法可不可采纳。我也是头一次看到这种表达。

追答

哦,是可以这么用的!一开始我也理解错了,u是unsigned的意思,
常见的#define BAUD 9600UL
共勉

温馨提示:内容为网友见解,仅供参考
无其他回答

求高手指导下,怎样理解STM32中的这两句宏定义?
stm32是32位机寄存器都是32位,这两句是对GPIOB->CRL寄存器的操作!运行步骤:8<<28,就是把8左移28位 然后与上面的寄存器 或运算,并赋值给寄存器。前面的&=就是先清0,不懂追问!直接跟你说了GPIOB->CRL |= 0x1000F FF FF FF;第二句:GPIOB->CRL |= 0011 F FF FF FF;

关于stm32中的宏定义
stm32是32位机寄存器都是32位,这两句是对GPIOB->CRL寄存器的操作!运行步骤:8<<28,就是把8左移28位 然后与上面的寄存器 或运算,并赋值给寄存器。前面的&=就是先清0,不懂追问!直接跟你说了GPIOB->CRL |= 0x1000F FF FF FF;第二句:GPIOB->CRL |= 0011 F FF FF FF;

求高手指导下,怎样理解STM32中的这两句宏定义?
stm32是32位机寄存器都是32位,这两句是对GPIOB->CRL寄存器的操作!运行步骤:8<<28,就是把8左移28位 然后与上面的寄存器 或运算,并赋值给寄存器。前面的&=就是先清0,不懂追问!直接跟你说了GPIOB->CRL |= 0x1000F FF FF FF;第二句:GPIOB->CRL |= 0011 F FF FF FF;

Stm32中宏定义是什么意思呢
TIM_TypeDef 是结构体 ((TIM_TypeDef *) TIM2_BASE) 把一个地址强制转换为结构体类型。

stm32中宏定义的问题
short int 因为stm32之所以叫这个名,cpu的数据线是32位的,那么普通int就是32位的,所以short int才是16位的 这里的定义是定义了一些16位无符号整数,加括号是普通做法,省得在语句中实际进行替换时会出现歧义 (uint16_t)0x0001前面的uint16_t加括号表示强制数据类型转换,这是c语言标准语法 ...

stm32 这句话具体怎么理解?#define GPIO_Pin_4 ((uint16_t)0x0010...
宏定义啊,亲,定义GPIO_Pin_4的值为0x0010,uint16_t原型是这样的(typedef unsigned short int uint16_t;),这句话的意思也就是说定义了GPIO_Pin_4为一个无符号短整型的数,值为0x0010.好吧,还有什么不懂的你可以追问

stm32的例程宏定义问题?
导致重定义或者未定义一些宏。main.c文件中应该包含许多移植模块的头文件,例如led.h、delay.h 等。在非主函数源文件中要只包含本源文件对应的头文件,在此头文件中要包含源文件中用到的函数或者宏所在的头文件。这样做是为了增加文件的可移植性,也是为了很好的调用头文件。

求助,刚学stm32在学位绑定下面的这个宏定义的含义不太明白,各位帮忙看...
就是把BitBand(Adrr,BitNum)定义为* ( (volatile unsigned long *)型的指针啊

stm32 usb库函数中有宏定义 __ALIGN_BEGIN USBH_HOST USB_Host __ALIG...
这段标记是说,在ARM,IAR,GNU等不同的编译环境中__ALIGN_BEGIN代表不同的对齐方式及编码格式,这段总体意思是ARM,GNU环境下4字节对齐,而IAR环境下表示空,不做对齐。

STM32中uint8_t inputstr[CMD_STRING_SIZE];是怎样的一个定义。
这就普通的一个变量定义啊 uint8_t是类型,应该就是unsigned char inputstr是一个数组,元素类型是uint8_t,数组元素个数是CMD_STRING_SIZE。CMD_STRING_SIZE可能是一个宏定义,代表一个数值,如50,100之类。也可能是一个const常量或是枚举值。

相似回答
大家正在搜