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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2106|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

STM32F103和HMI串口屏通信,參考了論壇上大佬的單片機(jī)代碼,但是依舊有問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1019495 發(fā)表于 2022-7-23 11:08 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
代碼寫(xiě)的很清晰,但是不知道為什么單片機(jī)和串口屏接上去之后,沒(méi)有進(jìn)行賦值,LED0依然是閃爍,說(shuō)明也是正常工作
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"         

#include "hmi.h"

u8 dat[] = "add 1,0,9 0xff,0xff,0xff";
int t=0;
u8 date[] = {0xff,0xff,0xff};

int main(void)
{         
        delay_init();                     //延時(shí)函數(shù)初始化         
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級(jí)分組為組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
        uart_init(9600);                 //串口初始化為115200         
        uart3_init(115200);
         LED_Init();                             //LED端口初始化
         
        while(1)
        {
                for(t=0;t<56;t++)
        {        
            while(USART_GetFlagStatus(USART3,USART_FLAG_TC)!=SET);
            USART_SendData(USART3,dat[t]);                                         
        }
                //                HMI_SendNum(USART3,"n0.val=",0,2,4);
//          HMI_SendNum(USART3,"n1.val=",7,(int)2,1);
//          HMI_SendNum(USART3,"n2.val=",7,((int)2)/100,1);
//          HMI_SendNum(USART3,"n3.val=",7,(((int)2)/10)%10,1);
//          HMI_SendNum(USART3,"n4.val=",7,((int)2)%10,1);
               
          HMI_SendText(USART1,"t0.txt=",7,"文本測(cè)試",8);        
                                       
                LED0=!LED0;
                delay_ms(250);        
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:401564 發(fā)表于 2022-7-23 11:41 | 只看該作者
代碼寫(xiě)的很清晰,這是什么意思?
LED0=!LED0;這個(gè)本身就是在循環(huán)中的,又沒(méi)有什么條件的,它肯定一直是閃燈的呀
那么,你這問(wèn)題是什么呢?
就這幾行代碼,你也沒(méi)有說(shuō)明你的程序有什么問(wèn)題呀
而且,串口屏的程序呢?
回復(fù)

使用道具 舉報(bào)

板凳
ID:1040182 發(fā)表于 2022-7-23 13:20 | 只看該作者
HMI_SendText(USART1,"t0.txt=",7,"文本測(cè)試",8);      
                                       
                LED0=!LED0;
                delay_ms(250);      
改成
HMI_SendText(USART1,"t0.txt=",7,"文本測(cè)試",8)      
             {                          
                LED0=!LED0;
                delay_ms(250);   
              }
發(fā)送數(shù)據(jù)的時(shí)候進(jìn)行閃爍 是要這樣嗎?
回復(fù)

使用道具 舉報(bào)

地板
ID:1019495 發(fā)表于 2022-7-23 13:57 | 只看該作者
Y_G_G 發(fā)表于 2022-7-23 11:41
代碼寫(xiě)的很清晰,這是什么意思?
LED0=!LED0;這個(gè)本身就是在循環(huán)中的,又沒(méi)有什么條件的,它肯定一直是閃燈的 ...

這是串口屏的代碼,
#include "sys.h"
#include "hmi.h"       
/************************************************************************
           說(shuō)明:本函數(shù)庫(kù)為陶晶池串口屏數(shù)據(jù)發(fā)送指令庫(kù),包含以下函數(shù)
                                         
1.數(shù)值發(fā)送函數(shù):void HMI_SendNum(USART_TypeDef* USARTx,u8 *data,u8 len,u16 Num,u8 len2)
            USART_TypeDef* USARTx: 選擇串口輸出,注意必須先初始化、使能該串口
            u16 *data:上位機(jī)上數(shù)字位相應(yīng)的改變數(shù)值代碼,如"n0.val="、"n1.val="
                                                u8 len:*data代碼的長(zhǎng)度。如"n0.val="長(zhǎng)度為7。
            u16 Num:需要串口輸出顯示的數(shù)值,注意開(kāi)頭0不顯示,輸出數(shù)字0開(kāi)頭會(huì)報(bào)錯(cuò)
            u8 len2:需要顯示的數(shù)值的位數(shù)    注意不能大于上位機(jī)上設(shè)定的位數(shù)

2.字符串發(fā)送函數(shù):void HMI_SendText(USART_TypeDef* USARTx,u8 *data,u8 len,u8 *text,u8 len2)
            USART_TypeDef* USARTx: 選擇串口輸出,注意必須先初始化、使能該串口
            u16 *data:上位機(jī)上文本位相應(yīng)的改變數(shù)值代碼,如"t0.txt="、"t1.txt="
                  u8 len:*data代碼的長(zhǎng)度。如"t0.txt="長(zhǎng)度為7。
            u8 *text:需要串口輸出顯示的文本
            u8 len2:需要顯示的文本的長(zhǎng)度,英文一個(gè)字符一字節(jié)、漢字一個(gè)字兩個(gè)字節(jié)   
                                                         注意取的值可以比文本長(zhǎng)度大,但不能大于上位機(jī)上設(shè)定的長(zhǎng)度

*************************************************************************/



//10的乘方函數(shù),用于判斷位數(shù)
u32 HMI_Pow(u8 n)
{
        u32 result=1;         
        while(n--)result*=10;   
        return result;
}       


//數(shù)值發(fā)送函數(shù)
//USART_TypeDef* USARTx: 選擇串口輸出,注意必須先初始化、使能串口
//u16 *data:上位機(jī)上數(shù)字位相應(yīng)的改變數(shù)值代碼
//u8 len:*data代碼的長(zhǎng)度。
//u16 Num:需要顯示的數(shù)值,注意開(kāi)頭0不顯示
//u8 len2:需要顯示的數(shù)值的位數(shù)
void HMI_SendNum(USART_TypeDef* USARTx,u8 *data,u8 len,u16 Num,u8 len2)
{
                u8 t;
for(t=0;t<len;t++)
        {       
            while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
            USART_SendData(USARTx,data[t]);                                        
        }
for(t=0;t<len2;t++)       
{
           while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
           USART_SendData(USARTx,'0'+(Num/HMI_Pow(len2-t-1))%10);


}
                               
            while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
            USART_SendData(USARTx,0XFF);
              
              
            while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
            USART_SendData(USARTx,0XFF);
            
              
            while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
            USART_SendData(USARTx,0XFF);

}

//字符串發(fā)送函數(shù):HMI_SendText(USART_TypeDef* USARTx,u8 *data,u8 len,u8 *text,u8 len2)
//            USART_TypeDef* USARTx: 選擇串口輸出,注意必須先初始化、使能該串口
//            u16 *data:上位機(jī)上文本位相應(yīng)的改變數(shù)值代碼,如"t0.txt="、"t1.txt="
//                  u8 len:*data代碼的長(zhǎng)度。如"t0.txt="長(zhǎng)度為7。
//            u8 *text:需要串口輸出顯示的文本
//            u8 len2:需要顯示的文本的長(zhǎng)度,英文一個(gè)字符一字節(jié)、漢字一個(gè)字兩個(gè)字節(jié)   

void HMI_SendText(USART_TypeDef* USARTx,u8 *data,u8 len,u8 *text,u8 len2)
{
                u8 t;
    for(t=0;t<len;t++)
        {       
            while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
            USART_SendData(USARTx,data[t]);                                        
        }
                                    while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
            USART_SendData(USARTx,0X22);
   for(t=0;t<len2;t++)       
       {
           while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
           USART_SendData(USARTx,text[t]);


       }
                                                 while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
            USART_SendData(USARTx,0X22);
                               
            while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
            USART_SendData(USARTx,0XFF);
              
              
            while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
            USART_SendData(USARTx,0XFF);
            
              
            while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
            USART_SendData(USARTx,0XFF);




}
回復(fù)

使用道具 舉報(bào)

5#
ID:401564 發(fā)表于 2022-7-24 00:14 | 只看該作者
sadadasddas2 發(fā)表于 2022-7-23 13:20
HMI_SendText(USART1,"t0.txt=",7,"文本測(cè)試",8);      
                                       
    ...

你這就加了個(gè){}而已,能不能編譯得過(guò)去還不知道呢
回復(fù)

使用道具 舉報(bào)

6#
ID:401564 發(fā)表于 2022-7-24 08:29 | 只看該作者
SereinM 發(fā)表于 2022-7-23 13:57
這是串口屏的代碼,
#include "sys.h"
#include "hmi.h"       

你給這代碼什么意思?
你要做什么?
你說(shuō)的不行是什么意思,到底哪里不行?
串口一定要先設(shè)置好,你可以先用電腦的串口助手接收一下STM32發(fā)送了什么
而且,控件的名稱一定要對(duì)應(yīng),也要先創(chuàng)建好字庫(kù)
回復(fù)

使用道具 舉報(bào)

7#
ID:95436 發(fā)表于 2022-11-21 13:50 | 只看該作者
雖然我解決不了問(wèn)題,但是我覺(jué)得提問(wèn)者搞得人家一頭霧水,要么你直接整個(gè)程序發(fā)上來(lái)讓人家?guī)涂纯矗氵@貼這么一點(diǎn)人家怎么知道你要干什么。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表