Rareyee 发表于 2017-11-21 15:04:51

stm32F7的 8080并口传数据? 高8位低8位如何存和发


在51里面是这样写的    在stm32里面 就是不知道怎么存怎么发   用了6片ADC   DB0-DB15用了GPIOF
void Read(void)
                {      
                        
                        int n;
                              int j;
                              int byte_num=0;
                              unsigned int H_Data;
                              unsigned int L_Data;
                              unsigned int m=0x40;   

                              CON=0;
                        CON=1;
                        
   while(BUSY==1)                                          
               
      //      BUSY=1;
       for(j=0;j<6;j++)                                                                                                                                    

       {   switch(j)
                  {      
                              case 0:CS_A=0; CS_B=0; CS_C=0;break;
                  case 1:CS_A=1; CS_B=0; CS_C=0;break;
                              case 2:CS_A=0; CS_B=1; CS_C=0;break;
                              case 3:CS_A=1; CS_B=1; CS_C=0;break;
                              case 4:CS_A=0; CS_B=0; CS_C=1;break;
                              case 5:CS_A=1; CS_B=0; CS_C=1;break;
                              default: break;
                  }   
         for(n=0;n<8;n++)
            {               
                                                 RD=0;         
                                                 H_Data=P1;            
             L_Data=P0;               
                                                 RD=1;
             Data=H_Data;                                                                                                         
             Data=L_Data;
             }
      
         }   
                                                }                                                               
/////////////////////////////////////////////                                                               
void Send()
                  {
                   int k;
                         int i=0;
                         char Datas;                        
                              send_byte(0x99);
                        for(k=1;k<49;k++)
    {                        
                                        send_byte(k);
                        
                Datas=Data;
                            send_byte(Datas);
                                        Datas=Data;      
                                        i=i+1;                              
                            send_byte(Datas);
                        
                                                                                                
            }
                         send_byte(0x99);      
                   send_byte(0x99);               
                                                                                                                                                                                       
      }

springvirus 发表于 2018-3-6 13:32:09

本帖最后由 springvirus 于 2018-3-7 08:30 编辑

具体看你编译器和平台的设置,是大端还是小端
然后高低字节处理起来就轻松了


使用以下结构确认大小端

union sv {
   
    unsigned short Val;
    unsigned char c;
}sv_16;

union sv {
   
    unsigned int Val;
    unsigned char c;

}sv_32;

sv_16 temp_16;
sv_32 temp_32;

temp_16.Val = xxxx;
temp_32.Val = xxxx;

printf("%02x %02x ", temp_16.c, temp_16.c );
printf("%02x %02x %02x %02x", temp_32.c, temp_32.c, temp_32.c, temp_32.c);




页: [1]
查看完整版本: stm32F7的 8080并口传数据? 高8位低8位如何存和发