Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C将uint32_t十六进制值转换为ascii十进制LCD_C_Microcontroller_Cortex M3 - Fatal编程技术网

使用C将uint32_t十六进制值转换为ascii十进制LCD

使用C将uint32_t十六进制值转换为ascii十进制LCD,c,microcontroller,cortex-m3,C,Microcontroller,Cortex M3,我只是想知道是否有人对如何将uint32_t十六进制值转换为ascii十进制并将其显示在LCD上有什么见解。一个算法会有帮助,所以我可以用C代码编程。我得到的十六进制值来自一个ADC,我把它转换成LCD。ADC数据给出16位值,lcd为16x2 void Hex2DecToLCD(){ 算法在这里 } 关于无效十六进制到BCD到LCD(uint32 ADCData) void Hex_To_BCD_To_LCD(uint32_t ADCData) { char BCD[5];

我只是想知道是否有人对如何将uint32_t十六进制值转换为ascii十进制并将其显示在LCD上有什么见解。一个算法会有帮助,所以我可以用C代码编程。我得到的十六进制值来自一个ADC,我把它转换成LCD。ADC数据给出16位值,lcd为16x2

void Hex2DecToLCD(){

算法在这里

}

关于无效十六进制到BCD到LCD(uint32 ADCData)
void Hex_To_BCD_To_LCD(uint32_t ADCData)

 {

   char BCD[5];

   uint32_t Dig_0, Dig_1, Dig_2, Dig_3, Dig_4;

   int i = 0;

   uint32_t temp = 0x0;

   uint32_t bin_inp = ADCData;

   bin_inp *= 0x8; // scale up the ADC value

   temp  = bin_inp;

   Dig_4 = temp/10000;

   BCD[4] = Dig_4 + 0x30;

   temp  = temp - (Dig_4 * 10000);
   Dig_3 = temp/1000;
   BCD[3] = Dig_3 + 0x30;
   temp  = temp - (Dig_3 * 1000);

   Dig_2 = temp/100;
   BCD[2] = Dig_2 + 0x30;
   temp  = temp - (Dig_2 * 100);

   Dig_1 = temp/10;
   BCD[1] = Dig_1 + 0x30;
   temp  = temp - (Dig_1 * 10);

   Dig_0 = temp;
   BCD[0] = Dig_0 + 0x30;

 //Data to LCD
for (i =0; i < 5; i++){

     Data_To_LCD(BCD[i++]);

   }
}
{ char-BCD[5]; uint32 t挖0,挖1,挖2,挖3,挖4; int i=0; uint32温度=0x0; uint32\u t bin\u inp=ADCData; bin_inp*=0x8;//放大ADC值 温度=bin_inp; 挖掘4=温度/10000; BCD[4]=Dig_4+0x30; 温度=温度-(挖掘4*10000); 挖掘3=温度/1000; BCD[3]=Dig_3+0x30; 温度=温度-(挖掘3*1000); 挖掘2=温度/100; BCD[2]=Dig_2+0x30; 温度=温度-(挖掘2*100); 挖掘1=温度/10; BCD[1]=Dig_1+0x30; 温度=温度-(挖掘1*10); 挖掘0=温度; BCD[0]=Dig_0+0x30; //数据传输至液晶显示器 对于(i=0;i<5;i++){ 数据到液晶显示器(BCD[i++]); } }
您尝试了什么?可能重复的Im将用0x8缩放来自ADC的电压,然后我获取该值并创建一个函数,将十六进制转换为BCD代码。现在,了解如何在CTD中实现十六进制转换为BCD功能这是我问题的答案