首页 → 经典 → 心灵鸡汤
usart可以當uart用嗎 uart有什么用
日期:2023-02-13 21:37:47    编辑:网络投稿    来源:网络资源
您好,今天飛哥來為大家解答以上的問題。usart和uart可以混用嗎,usart相信很多小伙伴還不知道,現在讓我們一起來看看吧!1、實際上兩個函數實現的功能是一樣的,都是清除相對應的
为你推荐:
  • 讀完豁然開朗的人生
  • 您好,今天飛哥來為大家解答以上的問題。usart和uart可以混用嗎,usart相信很多小伙伴還不知道,現在讓我們一起來看看吧!

    1、實際上兩個函數實現的功能是一樣的,都是清除相對應的標志位,只是標志位和中斷位含義不一樣,是標志位但是不一定會產生中斷。

    2、例如:#define ADC_IT_EOC ((uint16_t)0x0220)#define ADC_IT_AWD ((uint16_t)0x0140)#define ADC_IT_JEOC ((uint16_t)0x0480)這是中斷位,可以產生中斷#define ADC_FLAG_AWD ((uint8_t)0x01)#define ADC_FLAG_EOC ((uint8_t)0x02)#define ADC_FLAG_JEOC ((uint8_t)0x04)#define ADC_FLAG_JSTRT ((uint8_t)0x08)#define ADC_FLAG_STRT ((uint8_t)0x10)這是標志位,有的標志位不能產生中斷標志位在程序中可以作為判定條件,支持程序的運行,中斷則是跳轉到中斷函數執行。

    3、兩個函數實現的功能是一樣的,在中斷程序中可以用兩個中的任一個。

    4、我想區分兩個函數是為了更清晰吧。

    5、還有#define ADC_IT_EOC ((uint16_t)0x0220)#define ADC_FLAG_EOC ((uint8_t)0x02)這兩個數值不同是因為標志位只是為了清除標志位而設的,而中斷位設置成這個值是因為在其他函數中這一位還有其他用途。

    6、而且還要注意:void ADC_ClearFlag(ADC_TypeDef* ADCx, uint8_t ADC_FLAG){ /* Check the parameters */ assert_param(IS_ADC_ALL_PERIPH(ADCx)); assert_param(IS_ADC_CLEAR_FLAG(ADC_FLAG)); /* Clear the selected ADC flags */ ADCx->SR = ~(uint32_t)ADC_FLAG;} 這一步 ADCx->SR = ~(uint32_t)ADC_FLAG;似乎應該是 ADCx->SR &= ~(uint32_t)ADC_FLAG;其實狀態位只能有硬件置位,軟件只能讀和清零,所以這樣寫也是正確的。

    7、OK,問題總是越辯越清晰的。

    本文就為大家分享到這里,希望小伙伴們會喜歡。

    这里有更多你想看的
  • 游戲id名字大全古風
    • 本类最新
    • 精品图文
    • 时尚
    • 新闻
    • 生活
    • 视觉
    • 微爱
      栏目ID=88的表不存在(操作类型=0)

    头条推荐

    热门推荐

    特别推荐

    返回顶部