一、GPIO(通用输入输出)
二、volatite关键字
-
防止优化:编译器通常会进行各种优化,以提高程序的执行效率。当编译器在优化代码时,可能会假设某些变量不会被外部因素改变。如果一个变量被标记为
volatile
,编译器会知道这个变量的值可能在程序的其他地方被改变,因此会对其假设放宽,不会进行不当的优化。 -
多线程编程:在多线程程序中,一个线程可能会修改一个变量,而另一个线程则会读取这个变量。使用
volatile
可以确保每次读取该变量时,都直接从内存读取最新值,而不是使用寄存器中可能已经缓存的过期值。 -
硬件寄存器:在嵌入式编程中,
volatile
通常用于访问硬件寄存器,因为寄存器的值可能随时由硬件设备改变。标记这些寄存器为volatile
可以确保每次访问时都能获取最新的值。
三、中断:
1.中断源发出中断请求;
2.CPU检查改中断是否被屏蔽;检查主中断是否被屏蔽(CPU是否响应中断CPSR中的I、F位);
3.判断中断优先级;
4.保护现场;
5.执行中断服务函数;
6.恢复现场;
四、时钟和电源管理
1.MPLL:
FCLOCK:400
HCLOCK:100
PCLOCK:50
五、PWM定时器