欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

stm32f103單片機串口連續發送多字節程序求分析問題

查看數: 3705 | 評論數: 4 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2021-5-6 15:53

正文摘要:

stm32f103單片機做通信控制,發送的數據總是不對。抄了網上各種發送程序,禁止編譯器優化等都試遍了。實在不知道錯在哪里,請網友幫忙指教。比如說我要發送的數據:0x5a  0xa5  0x03   ...

回復

ID:91471 發表于 2021-5-9 10:35
xu2509674896 發表于 2021-5-6 19:29
恕我太菜看不出什么問題來,但是從你程序的大括號上看,我發現你的程序一直在初始化硬件,然后再發送,我建 ...

謝謝!我現在只是想把功能實現,上面是在開關步進電機。現在外地出差還沒試你說可以正常用的程序,我看了一下大概率是不正常的,因為那段程序我已經試過了。
ID:889094 發表于 2021-5-6 20:21
51的過來學習一下,確定兩邊的波特率是一樣的?
ID:538157 發表于 2021-5-6 19:29
恕我太菜看不出什么問題來,但是從你程序的大括號上看,我發現你的程序一直在初始化硬件,然后再發送,我建議你把硬件的初始化配置只執行一次,發送部分放在一個while(1)循環里,最好加一個按鍵條件判斷發送,方便調試。最后,我把一個確定沒有問題的函數給你,你應該也是標準庫寫的,你看看試一試。
/*****************  發送一個字節 **********************/
void Usart_SendByte( USART_TypeDef * pUSARTx, uint8_t ch)//選擇哪一個串口,選擇發送哪一個數據
{
        /* 發送一個字節數據到USART */
        USART_SendData(pUSARTx,ch);
               
        /* 等待發送數據寄存器為空 */
        while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET);       
}

/****************** 發送指定長度的數組 ************************/
void Usart_SendArray( USART_TypeDef * pUSARTx, uint8_t *array, uint16_t num)//選擇哪一個串口,數組名或者指針,數據長度即有幾個發送的數據
{
  uint8_t i;
       
        for(i=0; i<num; i++)
  {
            /* 發送一個字節數據到USART */
            Usart_SendByte(pUSARTx,array[i]);       

  }
        /* 等待發送完成 */
        while(USART_GetFlagStatus(pUSARTx,USART_FLAG_TC)==RESET);

}
modbus通信的部分,
ID:91471 發表于 2021-5-6 15:59
求一份可以一次正確發送多字節的程序范例,稍微改一下還能發送MODBUS協議的多字節程序。

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表