学习stm32
位带操作(Bitwise Operation)是指在计算机编程中对数据的二进制位进行直接操作的一类操作。这些操作通常用于处理整数类型的数据,包括按位与(AND)、按位或(OR)、按位异或(XOR)、按位取反(NOT)、左移和右移等。
常见的位带操作
-
按位与(AND):
& - 对应位都是1时结果为1,其它情况为0。
- 例如:
5 & 3(0101 & 0011)结果是1(0001)。 -
按位或(OR):
| - 对应位有一个为1时结果为1。
- 例如:
5 | 3(0101 | 0011)结果是7(0111)。 -
按位异或(XOR):
^ - 对应位相同为0,不同为1。
- 例如:
5 ^ 3(0101 ^ 0011)结果是6(0110)。 -
按位取反(NOT):
~ - 对每个位进行取反,0变为1,1变为0。
- 例如:
~5(~0101)结果是-6(在补码表示中)。 -
左移(Left Shift):
<< - 将二进制数的位向左移动,右侧用0填充。
- 例如:
5 << 1(0101)结果是10(1010)。 -
右移(Right Shift):
>> - 将二进制数的位向右移动,左侧填充符号位(对于有符号数)。
- 例如:
5 >> 1(0101)结果是2(0010)。
STM32微控制器系列具有多种外设,以下是一些常见外设及其作用:
1. FSMC (Flexible Static Memory Controller)
2. I2S (Inter-IC Sound)
3. SDIO (Secure Digital Input Output)
4. ADC (Analog-to-Digital Converter)
5. DAC (Digital-to-Analog Converter)
6. RTC (Real-Time Clock)
7. DMA (Direct Memory Access)
其他常见外设
这些外设的组合使得STM32微控制器非常灵活和强大,能够满足各种嵌入式应用的需求。
《STM32参考手册》中文版V10.0
《Cortex-M3权威指南》中文版(宋岩 译)
IAP(In-Application Programming)是STM32微控制器中的一种技术,允许设备在应用程序运行时更新其固件。这种方法非常适合需要远程更新或在不需要外部编程器的情况下进行固件升级的应用场景。下面是IAP的一些关键点和实用程序的基本概念:
IAP的工作原理
-
固件分区:通常,STM32的Flash存储会分为两个区域:一个用于当前运行的应用程序,另一个用于新固件的存储。
-
引导程序:IAP通常需要一个引导加载程序(Bootloader),这个程序负责接收新的固件数据并将其写入Flash。引导加载程序通常位于Flash的开头。
-
更新流程:
- 通过通信接口(如UART、CAN、USB等)接收新固件数据。
- 将数据写入预定的Flash区域。
- 更新完毕后,重启微控制器,使新的固件生效。
IAP的优点
作者:灵魂尾巴.