使用C将uint32_t十六进制值转换为ascii十进制LCD
我只是想知道是否有人对如何将uint32_t十六进制值转换为ascii十进制并将其显示在LCD上有什么见解。一个算法会有帮助,所以我可以用C代码编程。我得到的十六进制值来自一个ADC,我把它转换成LCD。ADC数据给出16位值,lcd为16x2 void Hex2DecToLCD(){ 算法在这里 } 关于无效十六进制到BCD到LCD(uint32 ADCData)使用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];
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功能这是我问题的答案