mirror of
https://github.com/eddyem/stm32samples.git
synced 2025-12-06 18:55:13 +03:00
37 lines
828 B
C
37 lines
828 B
C
// print 32bit unsigned int as hex
|
|
void printuhex(uint32_t val){
|
|
addtobuf("0x");
|
|
uint8_t *ptr = (uint8_t*)&val + 3;
|
|
int8_t i, j;
|
|
for(i = 0; i < 4; ++i, --ptr){
|
|
for(j = 1; j > -1; --j){
|
|
uint8_t half = (*ptr >> (4*j)) & 0x0f;
|
|
if(half < 10) bufputchar(half + '0');
|
|
else bufputchar(half - 10 + 'a');
|
|
}
|
|
}
|
|
}
|
|
|
|
// print 32bit unsigned int
|
|
void printu(uint32_t val){
|
|
char buf[11], *bufptr = &buf[10];
|
|
*bufptr = 0;
|
|
if(!val){
|
|
*(--bufptr) = '0';
|
|
}else{
|
|
while(val){
|
|
register uint32_t o = val;
|
|
val /= 10;
|
|
*(--bufptr) = (o - 10*val) + '0';
|
|
}
|
|
}
|
|
addtobuf(bufptr);
|
|
}
|
|
void printi(int32_t val){
|
|
if(val < 0){
|
|
val = -val;
|
|
bufputchar('-');
|
|
}
|
|
printu((uint32_t)val);
|
|
}
|