STM32小积累(1)

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"); //开中断

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值