您的位置:首页 > 其它

STM32小积累(1)

2015-11-26 11:59 162 查看
1、CPU_IntDis();

原型:void CPU_IntDis (void);

作用:关闭CPU中断(即禁止CPU中断)

备注:这其实就代码临界段:“代码的临界段也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。为确保临界段代码的执行,在进入临界段之前要关中断,而临界段代码执行完以后要立即开中断。”比如,在一个任务里面有一个全局变量,如果在对这个全局变量赋完值,这时有中断。系统就会进入中断子程序,当中断子程序执行完成后,系统去检测有无更高优先级任务。如果有就去执行更高优先级任务去了,如果这个任务里面又有对这个变量的操作,等这个任务完成后。这时程序又回到以前的任务,这个全局变量已被刚才更高优先级任务改变,这样系统就出现问题了。

2、GPIO的八钟模式

typedef enum
{   GPIO_Mode_AIN = 0x0,             /* 模拟输入,接收模拟量(电压值)一般用于AD采集 */
GPIO_Mode_IN_FLOATING = 0x04,    /* 浮空输入,复位后的状态 */
GPIO_Mode_IPD = 0x28,            /* 下拉输入,这里的下拉是指单片机内部的电阻 */
GPIO_Mode_IPU = 0x48,            /* 上拉输入,这里的上拉是指单片机内部的电阻 */
GPIO_Mode_Out_OD = 0x14,         /* 开漏输出 */
GPIO_Mode_Out_PP = 0x10,         /* 推挽输出 */
GPIO_Mode_AF_OD = 0x1C,          /* 复用开漏输出 */
GPIO_Mode_AF_PP = 0x18           /* 复用推挽输出 */
}GPIOMode_TypeDef;


3

端口配置低位寄存器(GPIOx_CRL)(x = A ... E)

端口配置高位寄存器(GPIOx_CRH)(x = A ... E)

端口输入数据寄存器()

4 STM32开关总中断

使用库函数

NVIC_SETFAULTMASK(); //关闭总中断

NVIC_RESETFAULTMASK();//开放总中断

直接指令

asm("CPSID I"); //关中断

asm("CPSIE I"); //开中断
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: