u8,u8国际,u8国际官方网站,u8国际网站,u8国际网址,u8国际链接,u8体育,u8体育官网,u8体育网址,u8注册,u8体育网址,u8官方网站,u8体育APP,u8体育登录,u8体育入口
移位操作在单片机开发中也非常重要,下面让我们看看固件库 的 GPIO 初始化的函数里面的一行代码 GPIOx-BSRR = (((uint32_t)0x01) pinpos); 这个操作就是将 BSRR 寄存器的第 pinpos 位设置为 1,为什么 要通过左移而不是直接设置一个固定的值呢?其实,这是为了 提高代码的可读性以及可重用性。这行代码可以很直观明了的 知道,是将第 pinpos 位设置为 1。如果你写成 GPIOx-BSRR =0x0030; 这样的代码就不好看也不好重用了。 类似这样的代码很多: GPIOA-ODR=15; //PA.5 输出高,不改变其他位 这样我们一目了然, 5 告诉我们是第 5 位也就是第 6 个端口, 1 告诉我们是设置为 1 了。
C 语言中 extern 可以置于变量或者函数前,以表示变量或者函数 的定义在别的文件中,提示编译器遇到此变量和函数时在其他模 块中寻找其定义。 这里面要注意,对于 extern 申明变量可以多 次,但定义只有一次。在我们的代码中你会看到看到这样的语句: extern u16 USART_RX_STA; 这个语句是申明 USART_RX_STA 变量在其他文件中已经定义了, 在这里要使用到。所以,你肯定可以找到在某个地方有变量定义 的语句: u16 USART_RX_STA; 的出现。下面通过一个例子说明一下使用方法。
@HASHKFK