zoukankan      html  css  js  c++  java
  • 电表程序的几个知识点

    1、中断

        1.1如果要使用某个中断,首先需要用这个函数,配置抢占优先级和响应优先级。  

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

       这里的参数,就是设置抢占优先级和响应优先级的位数。

       第一, 如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行;

       第二, 高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。而抢占优先级相同的中断,高优先级的响应优先级不可以打断低响应优先级的中断。 

       1.2 配置某个中断的参数

         //Usart1 NVIC 配置
        NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0 ;//抢占优先级
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;        //响应优先级
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;            //IRQ使能
        NVIC_Init(&NVIC_InitStructure);    //初始化NVIC寄存器

       1.3 确定具体的中断方式

         比如串口中断,会有很多种中断源,这个函数就是确认具体的中断源。

      USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);// 串口接收中断

     1.4 串口中断

          串口的数据寄存器只有1个,而且只用了8位,接收和发送都是同一个。所以比如串口接收的时候,对方发来4个字节,其实是要产生4个中断,然后每个中断会

    接收一次数据,写入缓存中。

       库函数中的USART_ReceiveData(USART1);USART_SendData(USART1, USART_RX_BUF[t]); 都是一个字节的操作。

       

  • 相关阅读:
    详解瀑布流布局的5种实现方式及object-fit
    npm私服配置使用
    node快速计算md5
    ajax下载文件实现接受json数据和文件流两种形式
    mac items+sshpass实现服务器登录管理
    web前端私有化部署方案
    chrome devTool中请求各项参数含义
    electron-updater实现electron应用程序更新
    Electron-builder打包应用程序策略
    electron打包配置方案
  • 原文地址:https://www.cnblogs.com/nasduc/p/7077001.html
Copyright © 2011-2022 走看看