printf.c ( File view )

  • By 学习ing 2015-08-20
  • View(s):23
  • Download(s):18
  • Point(s): 1
 * @file     printf.c
 * @brief    Implementation of several stdio.h methods, such as printf(), 
 *           sprintf() and so on. This reduces the memory footprint of the
 *           binary when using those methods, compared to the libc implementation.
#include <stdio.h>
#include <stdarg.h>

 * @brief  Transmit a char, if you want to use printf(), 
 *         you need implement this function
 * @param  pStr	Storage string.
 * @param  c    Character to write.
void PrintChar(char c)

	/* Send a char like: 
	   while(Transfer not completed);
	   Transmit a char;


/** Maximum string size allowed (in bytes). */
#define MAX_STRING_SIZE         100

/** Required for proper compilation. */
struct _reent r = {
0, (FILE *) 0, (FILE *) 1, (FILE *) 0
struct _reent *_impure_ptr = &r;

 * @brief  Writes a character inside the given string. Returns 1.
 * @param  pStr	Storage string.
 * @param  c    Character to write.
signed int PutChar(char *pStr, char c)

    *pStr = c;
    return 1;


 * @brief  Writes a string inside the given string.
 * @param  pStr     Storage string.
 * @param  pSource  Source string.
 * @return  The size of the written
signed int PutString(char *pStr, const char *pSource)

    signed int num = 0;

    while (*pSource != 0) {

        *pStr++ = *pSource++;

    return num;


 * @brief  Writes an unsigned int inside the given string, using the provided fill &
 *         width parameters.
 * @param  pStr  Storage string.
 * @param  fill  Fill character.
 * @param  width  Minimum integer width.
 * @param  value  Integer value.   
signed int PutUnsignedInt(
    char *pStr,
    char fill,
    signed int width,
    unsigned int value)

    signed int num = 0;

    /* Take current digit into account when calculating width */

    /* Recursively write upper digits */
    if ((value / 10) > 0) {

        num = PutUnsignedInt(pStr, fill, width, value / 10);
        pStr += num;
    /* Write filler characters */
    else {

        while (width > 0) {

            PutChar(pStr, fill);

    /* Write lower digit */
    num += PutChar(pStr, (value % 10) + '0');

    return num;


 * @brief  Writes a signed int inside the given string, using the provided fill & width
 *         parameters.
 * @param pStr   Storage string.
 * @param fill   Fill character.
 * @param width  Minimum integer width.
 * @param value  Signed integer value.
signed int PutSignedInt(
    char *pStr,
    char fill,
    signed int width,
    signed int value)

    signed int num = 0;
    unsigned int absolute;

    /* Compute absolute value */
    if (value < 0) {

        absolute = -value;
    else {

        absolute = value;

    /* Take current digit into account when calculating width */

    /* Recursively write upper digits */
    if ((absolute / 10) > 0) {

        if (value < 0) {

            num = PutSignedInt(pStr, fill, width, -(absolute / 10));
        else {

            num = PutSignedInt(pStr, fill, width, absolute / 10);
        pStr += num;
    else {

        /* Reserve space for sign */
        if (value < 0) {


        /* Write filler characters */
        while (width > 0) {

            PutChar(pStr, fill);

        /* Write sign */
        if (value < 0) {

            num += PutChar(pStr, '-');

    /* Write lower digit */
    num += PutChar(pStr, (absolute % 10) + '0');

    return num;


 * @brief  Writes an hexadecimal value into a string, using the given fill, width &
 *         capital parameters.
 * @param pStr   Storage string.
 * @param fill   Fill character.
 * @param width  Minimum integer width.
 * @param maj    Indicates if the letters must be printed in lower- or upper-case.
 * @param value  Hexadecimal value.
 * @return  The number of char written
signed int PutHexa(
    char *pStr,
    char fill,
    signed int width,
    unsigned char maj,
    unsigned int value)

    signed int num = 0;

    /* Decrement width */

    /* Recursively output upper digits */
    if ((value >> 4) > 0) {

        num += PutHexa(pStr, fill, width, maj, value >> 4);
        pStr += num;
    /* Write filler chars */
    else {

        while (width > 0) {

            PutChar(pStr, fill);

    /* Write current digit */
    if ((value & 0xF) < 10) {

        PutChar(pStr, (value & 0xF) + '0');
    else if (maj) {

        PutChar(pStr, (value & 0xF) - 10 + 'A');
    else {

        PutChar(pStr, (value & 0xF) - 10 + 'a');

    return num;


/* Global Functions ----------------------------------------------------------- */

 * @brief  Stores the result of a formatted string into another string. Format
 *         arguments are given in a va_list instance.
 * @param pStr    Destination string.
 * @param length  Length of Destination string.
 * @param pFormat Format string.
 * @param ap      Argument list.
 * @return  The number of characters written.
signed int vsnprintf(char *pStr, size_t length, const char *pFormat, va_list ap)

    char          fill;
    unsigned char width;
    signed int    num = 0;
    signed int    size = 0;

    /* Clear the string */
    if (pStr) {

        *pStr = 0;

    /* Phase string */
    while (*pFormat != 0 && size < length) {

        /* Normal character */
        if (*pFormat != '%') {

            *pStr++ = *pFormat++;
        /* Escaped '%' */
        else if (*(pFormat+1) == '%') {

            *pStr++ = '%';
            pFormat += 2;
        /* Token delimiter */
        else {

            fill = ' ';
            width = 0;

            /* Parse filler */
            if (*pFormat == '0') {

                fill = '0';

            /* Parse width */
            while ((*pFormat >= '0') && (*pFormat <= '9')) {

                width = (width*10) + *pFormat-'0';

            /* Check if there is enough space */
            if (size + width > length) {

                width = length - size;
            /* Parse type */
            switch (*pFormat) {

            case 'd': 
            case 'i': num = PutSignedInt(pStr, fill, width, va_arg(ap, signed int)); break;
            case 'u': num = PutUnsignedInt(pStr, fill, width, va_arg(ap, unsigned int)); break;
            case 'x': num = PutHexa(pStr, fill, width, 0, va_arg(ap, unsigned int)); break;
            case 'X': num = PutHexa(pStr, fill, width, 1, va_arg(ap, unsigned int)); break;
            case 's': num = PutString(pStr, va_arg(ap, char *)); break;
            case 'c': num = PutChar(pStr, va_arg(ap, unsigned int)); break;
                return EOF;

            pStr += num;
            size += num;

    /* NULL-terminated (final \0 is not counted) */
    if (size < length) {

        *pStr = 0;
    else {

        *(--pStr) = 0;

    return size;


 * @brief  Stores the result of a formatted string into another string. Format
 *         arguments are given in a va_list instance.
 * @param pStr    Destination string.
 * @param length  Length of Destination string.
 * @param pFormat Format string.
 * @param ...     Other arguments
 * @return  The number of characters written.
signed int snprintf(char *pString, size_t length, const char *pFormat, ...)

(Please download the complete source code to view)
Expand> <Close

Want complete source code? Download it here

Point(s): 1

0 lines left, continue to read
Sponsored links

File list

Tips: You can preview the content of files by clicking file names^_^
Name Size Date
core_cm3.c16.87 kB29-07-11|16:54
core_cm3.h83.71 kB29-07-11|16:54
startup_stm32f10x_cl.s15.39 kB29-07-11|16:54
startup_stm32f10x_hd.s15.14 kB29-07-11|16:54
startup_stm32f10x_hd_vl.s15.40 kB29-07-11|16:54
startup_stm32f10x_ld.s12.08 kB29-07-11|16:54
startup_stm32f10x_ld_vl.s13.33 kB29-07-11|16:54
startup_stm32f10x_md.s12.46 kB29-07-11|16:54
startup_stm32f10x_md_vl.s13.74 kB29-07-11|16:54
startup_stm32f10x_xl.s15.58 kB29-07-11|16:54
startup_stm32f10x_md.c13.85 kB29-07-11|16:54
startup_stm32f10x_md.s12.46 kB30-07-11|10:45
stm32f10x.h615.25 kB15-08-11|20:43
stm32f10x_conf.h3.13 kB31-07-11|21:56
system_stm32f10x.c32.11 kB29-07-11|16:54
system_stm32f10x.h2.02 kB29-07-11|16:54
readme.txt896.00 B29-07-11|16:54
coocox.h1.33 kB29-07-11|16:53
CoOS.h8.95 kB29-07-11|16:53
core.c7.91 kB29-07-11|16:53
event.c16.27 kB29-07-11|16:53
flag.c23.42 kB29-07-11|16:53
hook.c1.68 kB29-07-11|16:53
kernelHeap.c16.00 kB29-07-11|16:53
mbox.c10.49 kB29-07-11|16:53
mm.c9.65 kB29-07-11|16:53
mutex.c11.78 kB29-07-11|16:53
OsConfig.h6.64 kB18-08-11|16:53
OsCore.h687.00 B29-07-11|16:53
OsError.h2.03 kB29-07-11|16:53
OsEvent.h2.51 kB29-07-11|16:53
OsFlag.h1.97 kB29-07-11|16:53
OsKernelHeap.h1.12 kB29-07-11|16:53
OsMM.h938.00 B29-07-11|16:53
OsMutex.h2.00 kB29-07-11|16:53
OsQueue.h1.26 kB29-07-11|16:53
OsServiceReq.h1.24 kB29-07-11|16:53
OsTask.h4.09 kB29-07-11|16:54
OsTime.h1.07 kB29-07-11|16:54
OsTimer.h2.07 kB29-07-11|16:54
queue.c13.06 kB29-07-11|16:54
sem.c10.46 kB29-07-11|16:54
serviceReq.c5.55 kB29-07-11|16:54
task.c38.41 kB30-07-11|11:21
time.c13.82 kB29-07-11|16:54
timer.c16.37 kB29-07-11|16:54
utility.c3.02 kB29-07-11|16:54
utility.h1.28 kB29-07-11|16:54
arch.c3.33 kB29-07-11|16:53
port.c9.05 kB29-07-11|16:53
portForM0.asm3.50 kB29-07-11|16:53
portForM3.asm3.06 kB29-07-11|16:53
port.c7.10 kB29-07-11|16:53
OsArch.h1.92 kB29-07-11|16:53
ADC.h468.00 B31-07-11|21:51
ADC.c1.90 kB31-07-11|21:51
BLDC.h270.00 B03-11-11|19:03
BLDC.c11.97 kB19-08-15|09:43
BLUETOOTH.h54.00 B19-08-11|17:39
BLUETOOTH.c1.46 kB20-08-11|17:48
CAN1.h127.00 B16-08-11|17:10
CAN1.c3.74 kB16-08-11|17:10
DYP_ME007.h221.00 B26-08-11|14:05
DYP_ME007.c2.49 kB26-08-11|15:03
INFRARE_Receive.h189.00 B26-08-11|08:59
INFRARE_Receive.c3.01 kB26-08-11|08:55
KEY.h149.00 B03-11-11|09:18
KEY.c1.24 kB03-11-11|09:18
LCD_Config.h2.45 kB29-07-11|16:53
LCD_Dis.h2.08 kB31-07-11|19:22
LCD_Driver_User.h499.00 B29-07-11|16:53
LCD_PortConfig.h1,001.00 B14-08-11|20:27
GB_Table.c577.00 B31-07-11|20:00
LCD_ASCII.c11.11 kB29-07-11|16:53
LCD_Dis.c6.10 kB29-07-11|16:53
LCD_Driver_User.c4.58 kB31-07-11|19:31
LED.h168.00 B30-10-11|22:01
LED.c1.30 kB26-08-11|13:48
MCPWM.h1.36 kB14-09-11|11:54
MCPWM.c9.81 kB14-09-11|11:59
Motor.h123.00 B11-08-11|19:44
Motor.c2.13 kB15-08-11|14:45
PID.h120.00 B02-11-11|22:04
PID.c2.82 kB27-06-15|09:56
PS2.h1.52 kB14-08-11|21:51
PS2.c7.83 kB16-08-11|17:11
PWM3.h336.00 B18-08-11|17:07
PWM3.c4.34 kB25-08-11|23:56
PWM4.h582.00 B23-08-11|00:45
PWM4.c5.43 kB26-08-11|10:26
TIM2.h359.00 B25-08-11|23:27
TIM2.c5.71 kB26-08-11|13:03
TIM3.h359.00 B26-08-11|15:21
TIM3.c5.82 kB26-08-11|15:36
USART1.h237.00 B19-08-11|13:25
USART1.c2.96 kB19-08-11|17:51
USART2.h205.00 B22-08-11|00:55
USART2.c2.44 kB27-09-11|10:25
includes.h491.00 B17-06-15|14:20
JLink0.00 B234|47%
JLinkLog.txt1.50 kB16-06-15|16:54
JLinkSettings.ini285.00 B29-07-11|16:52
startup_stm32f10x_md.lst42.83 kB03-11-11|19:25
STM32F103RB.map182.32 kB25-07-15|14:45
main.c1.37 kB03-11-11|19:03
MCUPeriph_Init.c3.72 kB27-06-15|09:56
MCUPeriph_Init.h457.00 B30-07-11|09:04
adc.crf301.16 kB16-09-11|13:33
adc.d1.69 kB16-09-11|13:33
adc.o317.73 kB16-09-11|13:33
arch.crf17.80 kB16-06-15|15:55
arch.d699.00 B16-06-15|15:55
arch.o30.01 kB16-06-15|15:55
arch.__i700.00 B16-06-15|15:55
bldc.crf301.57 kB25-07-15|14:44
bldc.d1.41 kB25-07-15|14:44
bldc.o323.94 kB25-07-15|14:44
bldc.__i701.00 B25-07-15|14:44
bluetooth.crf302.69 kB26-08-11|15:22
bluetooth.d2.08 kB26-08-11|15:22
bluetooth.o323.18 kB26-08-11|15:22
bluetooth.__i801.00 B26-08-11|15:22
can.crf301.40 kB15-08-11|21:20
can.d1.53 kB15-08-11|21:20
can.o322.34 kB15-08-11|21:20
can.__i587.00 B15-08-11|21:20
can1.crf301.46 kB16-09-11|13:33
can1.d1.73 kB16-09-11|13:33
can1.o319.33 kB16-09-11|13:33
ccd.crf279.15 kB31-07-11|15:19
ccd.d1.25 kB31-07-11|15:19
ccd.o306.00 kB31-07-11|15:19
ccd.__i413.00 B31-07-11|15:19
core.crf17.84 kB16-06-15|15:55
core.d697.00 B16-06-15|15:55
core.o37.79 kB16-06-15|15:55
core.__i698.00 B16-06-15|15:55
core_cm3.crf3.45 kB16-06-15|15:55
core_cm3.d93.00 B16-06-15|15:55
core_cm3.o10.14 kB16-06-15|15:55
dyp_me007.crf302.78 kB26-08-11|15:22
dyp_me007.d2.08 kB26-08-11|15:22
dyp_me007.o327.82 kB26-08-11|15:22
dyp_me007.__i801.00 B26-08-11|15:22
event.crf19.68 kB16-06-15|15:55
event.d716.00 B16-06-15|15:55
event.o37.98 kB16-06-15|15:55
event.__i702.00 B16-06-15|15:55
flag.crf21.44 kB16-06-15|15:55
flag.d697.00 B16-06-15|15:55
flag.o46.94 kB16-06-15|15:55
flag.__i698.00 B16-06-15|15:55
gb_table.crf89.00 B26-08-11|14:35
gb_table.d49.00 B26-08-11|14:35
gb_table.o5.62 kB26-08-11|14:35
hook.crf17.55 kB16-06-15|15:55
hook.d697.00 B16-06-15|15:55
hook.o28.76 kB16-06-15|15:55
hook.__i698.00 B16-06-15|15:55
infrare_receive.crf302.93 kB26-08-11|15:22
infrare_receive.d2.32 kB26-08-11|15:22
infrare_receive.o324.77 kB26-08-11|15:22
infrare_receive.__i831.00 B26-08-11|15:22
kernelheap.crf20.18 kB16-06-15|15:55
kernelheap.d811.00 B16-06-15|15:55
kernelheap.o34.47 kB16-06-15|15:55
kernelheap.__i722.00 B16-06-15|15:55
key.crf298.44 kB17-06-15|14:20
key.d1.38 kB17-06-15|14:20
key.o314.61 kB17-06-15|14:20
key.__i696.00 B17-06-15|14:20
lcd_ascii.crf120.00 B26-08-11|14:35
lcd_ascii.d51.00 B26-08-11|14:35
lcd_ascii.o9.41 kB26-08-11|14:35
lcd_dis.crf3.47 kB26-08-11|14:35
lcd_dis.d205.00 B26-08-11|14:35
lcd_dis.o17.64 kB26-08-11|14:35
lcd_driver_user.crf306.48 kB26-08-11|15:21
lcd_driver_user.d2.49 kB26-08-11|15:21
lcd_driver_user.o332.31 kB26-08-11|15:21
lcd_driver_user.__i824.00 B26-08-11|15:21
led.crf298.26 kB17-06-15|14:20
led.d1.38 kB17-06-15|14:20
led.o315.57 kB17-06-15|14:20
led.__i696.00 B17-06-15|14:20
main.crf298.65 kB17-06-15|14:20
main.d1.36 kB17-06-15|14:20
main.o317.29 kB17-06-15|14:20
mbox.crf19.02 kB16-06-15|15:55
mbox.d697.00 B16-06-15|15:55
mbox.o36.50 kB16-06-15|15:55
mbox.__i698.00 B16-06-15|15:55
mcpwm.crf302.95 kB16-09-11|13:33
mcpwm.d1.77 kB16-09-11|13:33
mcpwm.o341.34 kB16-09-11|13:33
mcuperiph_init.crf298.43 kB27-06-15|09:56
mcuperiph_init.d1.67 kB27-06-15|09:56
mcuperiph_init.o318.38 kB27-06-15|09:56
mcuperiph_init.__i726.00 B27-06-15|09:56
misc.crf281.67 kB16-06-15|15:55
misc.d938.00 B16-06-15|15:55
misc.o304.11 kB16-06-15|15:55
misc.__i717.00 B16-06-15|15:55
mm.crf19.09 kB16-06-15|15:55
mm.d659.00 B16-06-15|15:55
mm.o35.62 kB16-06-15|15:55
mm.__i690.00 B16-06-15|15:55
motor.crf301.05 kB14-09-11|09:22
motor.d1.78 kB14-09-11|09:22
motor.o318.42 kB14-09-11|09:22
motor.__i825.00 B14-09-11|09:22
mutex.crf19.46 kB16-06-15|15:55
mutex.d716.00 B16-06-15|15:55
mutex.o34.52 kB16-06-15|15:55
mutex.__i702.00 B16-06-15|15:55
periph_init.crf276.98 kB29-07-11|16:53
periph_init.d1.13 kB29-07-11|16:53
periph_init.o302.95 kB29-07-11|16:53
pid.crf923.00 B27-06-15|09:56
pid.d34.00 B27-06-15|09:56
pid.o9.36 kB27-06-15|09:56
pid.__i696.00 B27-06-15|09:56
port.crf17.66 kB16-06-15|15:55
port.d704.00 B16-06-15|15:55
port.o28.59 kB16-06-15|15:55
port.__i705.00 B16-06-15|15:55
ps2.crf303.56 kB26-08-11|15:22
ps2.d1.85 kB26-08-11|15:22
ps2.o334.36 kB26-08-11|15:22
ps2.__i779.00 B26-08-11|15:21
ps2_key.crf299.29 kB12-08-11|17:20
ps2_key.d1.73 kB12-08-11|17:20
ps2_key.o315.71 kB12-08-11|17:20
ps2_key.__i623.00 B12-08-11|17:20
pwm.crf299.23 kB10-08-11|14:37
pwm.d1.39 kB10-08-11|14:37
pwm.o318.52 kB10-08-11|14:37
pwm.__i447.00 B10-08-11|14:37
pwm3.crf301.78 kB16-09-11|13:33
pwm3.d1.73 kB16-09-11|13:33
pwm3.o325.77 kB16-09-11|13:33
pwm4.crf302.14 kB16-09-11|13:33
pwm4.d1.73 kB16-09-11|13:33
pwm4.o334.54 kB16-09-11|13:33
queue.crf19.73 kB16-06-15|15:55
queue.d716.00 B16-06-15|15:55
queue.o38.20 kB16-06-15|15:55
queue.__i702.00 B16-06-15|15:55
sem.crf18.82 kB16-06-15|15:55
sem.d678.00 B16-06-15|15:55
sem.o36.16 kB16-06-15|15:55
sem.__i694.00 B16-06-15|15:55
servicereq.crf18.14 kB16-06-15|15:55
servicereq.d811.00 B16-06-15|15:55
servicereq.o30.71 kB16-06-15|15:55
servicereq.__i722.00 B16-06-15|15:55
startup_stm32f10x_md.d73.00 B03-11-11|19:25
startup_stm32f10x_md.o5.82 kB03-11-11|19:25
startup_stm32f10x_md.__i438.00 B29-07-11|16:53
STM32F103RB.axf406.48 kB25-07-15|14:45
STM32F103RB.hex34.23 kB25-07-15|14:45
STM32F103RB.htm79.66 kB25-07-15|14:45
STM32F103RB.lnp1.26 kB25-07-15|14:44
STM32F103RB.plg220.00 B21-08-15|09:11
STM32F103RB.sct479.00 B29-07-11|16:53
STM32F103RB.tra4.42 kB25-07-15|14:45
stm32f10x_adc.crf288.67 kB16-06-15|15:55
stm32f10x_adc.d1.08 kB16-06-15|15:55
stm32f10x_adc.o350.20 kB16-06-15|15:55
stm32f10x_adc.__i753.00 B16-06-15|15:55
stm32f10x_bkp.crf285.11 kB16-06-15|15:55
stm32f10x_bkp.d1.08 kB16-06-15|15:55
stm32f10x_bkp.o317.44 kB16-06-15|15:55
stm32f10x_bkp.__i753.00 B16-06-15|15:55
stm32f10x_can.crf288.72 kB16-06-15|15:55
stm32f10x_can.d1.08 kB16-06-15|15:55
stm32f10x_can.o328.61 kB16-06-15|15:55
stm32f10x_can.__i753.00 B16-06-15|15:55
stm32f10x_crc.crf281.67 kB16-06-15|15:55
stm32f10x_crc.d1.08 kB16-06-15|15:55
stm32f10x_crc.o306.02 kB16-06-15|15:55
stm32f10x_crc.__i753.00 B16-06-15|15:55
stm32f10x_dac.crf287.11 kB16-06-15|15:55
stm32f10x_dac.d1.08 kB16-06-15|15:55
stm32f10x_dac.o319.64 kB16-06-15|15:55
stm32f10x_dac.__i753.00 B16-06-15|15:55
stm32f10x_dbgmcu.crf281.91 kB16-06-15|15:55
stm32f10x_dbgmcu.d1.14 kB16-06-15|15:55
stm32f10x_dbgmcu.o302.95 kB16-06-15|15:55
stm32f10x_dbgmcu.__i765.00 B16-06-15|15:55
stm32f10x_dma.crf284.17 kB16-06-15|15:55
stm32f10x_dma.d1.08 kB16-06-15|15:55
stm32f10x_dma.o311.99 kB16-06-15|15:55
stm32f10x_dma.__i753.00 B16-06-15|15:55
stm32f10x_exti.crf282.21 kB16-06-15|15:55
stm32f10x_exti.d1.10 kB16-06-15|15:55
stm32f10x_exti.o308.16 kB16-06-15|15:55
stm32f10x_exti.__i757.00 B16-06-15|15:55
stm32f10x_flash.crf293.86 kB16-06-15|15:55
stm32f10x_flash.d1.12 kB16-06-15|15:55
stm32f10x_flash.o339.82 kB16-06-15|15:55
stm32f10x_flash.__i761.00 B16-06-15|15:55
stm32f10x_fsmc.crf294.64 kB16-06-15|15:55
stm32f10x_fsmc.d1.10 kB16-06-15|15:55
stm32f10x_fsmc.o333.51 kB16-06-15|15:55
stm32f10x_fsmc.__i757.00 B16-06-15|15:55
stm32f10x_gpio.crf284.99 kB16-06-15|15:55
stm32f10x_gpio.d1.10 kB16-06-15|15:55
stm32f10x_gpio.o323.79 kB16-06-15|15:55
stm32f10x_gpio.__i757.00 B16-06-15|15:55
stm32f10x_i2c.crf294.73 kB16-06-15|15:55
stm32f10x_i2c.d1.08 kB16-06-15|15:55
stm32f10x_i2c.o351.33 kB16-06-15|15:55
stm32f10x_i2c.__i753.00 B16-06-15|15:55
stm32f10x_it.crf299.29 kB17-06-15|15:43
stm32f10x_it.d1.61 kB17-06-15|15:43
stm32f10x_it.o335.59 kB17-06-15|15:43
stm32f10x_it.__i718.00 B17-06-15|15:43
stm32f10x_iwdg.crf282.30 kB16-06-15|15:55
stm32f10x_iwdg.d1.10 kB16-06-15|15:55
stm32f10x_iwdg.o306.91 kB16-06-15|15:55
stm32f10x_iwdg.__i757.00 B16-06-15|15:55
stm32f10x_pwr.crf283.99 kB16-06-15|15:55
stm32f10x_pwr.d1.08 kB16-06-15|15:55
stm32f10x_pwr.o312.02 kB16-06-15|15:55
stm32f10x_pwr.__i753.00 B16-06-15|15:55
stm32f10x_rcc.crf288.62 kB16-06-15|15:55
stm32f10x_rcc.d1.08 kB16-06-15|15:55
stm32f10x_rcc.o343.20 kB16-06-15|15:55
stm32f10x_rcc.__i753.00 B16-06-15|15:55
stm32f10x_rtc.crf283.86 kB16-06-15|15:55
stm32f10x_rtc.d1.08 kB16-06-15|15:55
stm32f10x_rtc.o317.69 kB16-06-15|15:55
stm32f10x_rtc.__i753.00 B16-06-15|15:55
stm32f10x_sdio.crf293.39 kB16-06-15|15:55
stm32f10x_sdio.d1.10 kB16-06-15|15:55
stm32f10x_sdio.o348.03 kB16-06-15|15:55
stm32f10x_sdio.__i757.00 B16-06-15|15:55
stm32f10x_spi.crf292.44 kB16-06-15|15:55
stm32f10x_spi.d1.08 kB16-06-15|15:55
stm32f10x_spi.o337.98 kB16-06-15|15:55
stm32f10x_spi.__i753.00 B16-06-15|15:55
stm32f10x_tim.crf301.85 kB16-06-15|15:55
stm32f10x_tim.d1.08 kB16-06-15|15:55
stm32f10x_tim.o428.19 kB16-06-15|15:55
stm32f10x_tim.__i753.00 B16-06-15|15:55
stm32f10x_usart.crf286.66 kB16-06-15|15:55
stm32f10x_usart.d1.12 kB16-06-15|15:55
stm32f10x_usart.o336.63 kB16-06-15|15:55
stm32f10x_usart.__i761.00 B16-06-15|15:55
stm32f10x_wwdg.crf282.50 kB16-06-15|15:55
stm32f10x_wwdg.d1.10 kB16-06-15|15:55
stm32f10x_wwdg.o309.29 kB16-06-15|15:55
stm32f10x_wwdg.__i757.00 B16-06-15|15:55
system_stm32f10x.crf282.77 kB16-06-15|15:55
system_stm32f10x.d1.04 kB16-06-15|15:55
system_stm32f10x.o303.12 kB16-06-15|15:55
task.crf21.77 kB16-06-15|15:55
task.d697.00 B16-06-15|15:55
task.o47.55 kB16-06-15|15:55
task.__i698.00 B16-06-15|15:55
tim.crf299.83 kB10-08-11|14:37
tim.d1.39 kB10-08-11|14:37
tim.o321.50 kB10-08-11|14:37
tim.__i447.00 B10-08-11|14:37
tim2.crf302.09 kB16-09-11|13:33
tim2.d1.73 kB16-09-11|13:33
tim2.o326.97 kB16-09-11|13:33
tim3.crf302.03 kB16-09-11|13:33
tim3.d1.73 kB16-09-11|13:33
tim3.o327.08 kB16-09-11|13:33
time.crf19.09 kB16-06-15|15:55
time.d697.00 B16-06-15|15:55
time.o39.16 kB16-06-15|15:55
time.__i698.00 B16-06-15|15:55
timer.crf19.79 kB16-06-15|15:55
timer.d716.00 B16-06-15|15:55
timer.o42.40 kB16-06-15|15:55
timer.__i702.00 B16-06-15|15:55
usart.crf299.45 kB11-08-11|19:48
usart.d1.50 kB11-08-11|19:48
usart.o318.95 kB11-08-11|19:48
usart.__i481.00 B11-08-11|19:48
usart1.crf298.68 kB17-06-15|14:20
usart1.d1.48 kB17-06-15|14:20
usart1.o317.63 kB17-06-15|14:20
usart1.__i717.00 B17-06-15|14:20
usart2.crf298.64 kB17-06-15|14:20
usart2.d1.48 kB17-06-15|14:20
usart2.o317.57 kB17-06-15|14:20
usart2.__i717.00 B17-06-15|14:20
utility.crf17.97 kB16-06-15|15:55
utility.d754.00 B16-06-15|15:55
utility.o29.66 kB16-06-15|15:55
utility.__i710.00 B16-06-15|15:55
printf.c12.41 kB29-07-11|16:52
STM32F103RB.uvopt83.38 kB21-08-15|09:21
STM32F103RB.uvproj25.33 kB16-06-15|16:54
STM32F103RB_STM32F103RB.dep77.74 kB21-08-15|09:11
STM32F103RB_uvopt.bak83.38 kB19-08-15|09:46
STM32F103RB_uvproj.bak25.33 kB03-11-11|11:54
stm32f10x_it.c8.57 kB17-08-15|14:09
stm32f10x_it.h2.04 kB15-08-11|20:58
misc.h8.68 kB29-07-11|16:52
stm32f10x_adc.h20.94 kB29-07-11|16:52
stm32f10x_bkp.h7.29 kB29-07-11|16:52
stm32f10x_can.h20.03 kB29-07-11|16:52
stm32f10x_crc.h2.02 kB29-07-11|16:52
stm32f10x_dac.h13.45 kB29-07-11|16:52
stm32f10x_dbgmcu.h3.06 kB29-07-11|16:52
stm32f10x_dma.h20.09 kB29-07-11|16:52
stm32f10x_exti.h6.53 kB29-07-11|16:52
stm32f10x_flash.h19.07 kB29-07-11|16:52
stm32f10x_fsmc.h25.57 kB29-07-11|16:52
stm32f10x_gpio.h16.95 kB09-08-11|14:57
stm32f10x_i2c.h17.56 kB29-07-11|16:52
stm32f10x_iwdg.h3.65 kB29-07-11|16:52
stm32f10x_pwr.h4.19 kB29-07-11|16:52
stm32f10x_rcc.h28.34 kB29-07-11|16:52
stm32f10x_rtc.h3.68 kB29-07-11|16:52
stm32f10x_sdio.h21.26 kB29-07-11|16:52
stm32f10x_spi.h17.67 kB29-07-11|16:52
stm32f10x_tim.h43.85 kB01-08-11|11:48
stm32f10x_usart.h15.92 kB29-07-11|16:52
stm32f10x_wwdg.h2.81 kB29-07-11|16:52
misc.c6.77 kB29-07-11|16:52
stm32f10x_adc.c45.91 kB29-07-11|16:52
stm32f10x_bkp.c8.30 kB29-07-11|16:52
stm32f10x_can.c31.31 kB15-08-11|22:21
stm32f10x_crc.c3.26 kB29-07-11|16:52
stm32f10x_dac.c13.70 kB29-07-11|16:52
stm32f10x_dbgmcu.c4.28 kB29-07-11|16:52
stm32f10x_dma.c27.47 kB29-07-11|16:52
stm32f10x_exti.c6.69 kB29-07-11|16:52
stm32f10x_flash.c25.89 kB29-07-11|16:52
stm32f10x_fsmc.c34.25 kB29-07-11|16:52
stm32f10x_gpio.c18.74 kB29-07-11|16:52
stm32f10x_i2c.c36.75 kB29-07-11|16:52
stm32f10x_iwdg.c4.71 kB29-07-11|16:52
stm32f10x_pwr.c8.76 kB29-07-11|16:52
stm32f10x_rcc.c48.50 kB29-07-11|16:52
stm32f10x_rtc.c8.46 kB29-07-11|16:52
stm32f10x_sdio.c28.13 kB29-07-11|16:52
stm32f10x_spi.c29.36 kB29-07-11|16:52
stm32f10x_tim.c102.27 kB16-09-11|13:31
stm32f10x_usart.c34.42 kB29-07-11|16:52
stm32f10x_wwdg.c5.51 kB29-07-11|16:52
syscalls.c1.17 kB29-07-11|16:52
readme.txt112.00 B05-11-11|15:38
说明.doc157.00 kB18-08-15|10:35
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
GCC0.00 B03-11-11|21:46
IAR0.00 B03-11-11|21:46
Keil0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
CAN10.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
MCPWM10.00 B03-11-11|21:46
StepMotor0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
TIM3_PWM0.00 B03-11-11|21:46
TIM4_PWM0.00 B03-11-11|21:46
TIM20.00 B03-11-11|21:46
TIM30.00 B03-11-11|21:46
TIM40.00 B03-11-11|21:46
USART10.00 B03-11-11|21:46
USART20.00 B03-11-11|21:46
arm0.00 B03-11-11|21:46
startup0.00 B03-11-11|21:46
Document0.00 B03-11-11|21:46
kernel0.00 B03-11-11|21:46
portable0.00 B03-11-11|21:46
ADC0.00 B03-11-11|21:46
BLDC0.00 B03-11-11|21:46
BLUETOOTH0.00 B03-11-11|21:46
CAN0.00 B03-11-11|21:46
DYP_ME0070.00 B03-11-11|21:46
INFRARE_Receive0.00 B03-11-11|21:46
KEY0.00 B03-11-11|21:46
LCD128640.00 B03-11-11|21:46
LED0.00 B03-11-11|21:46
MCPWM0.00 B03-11-11|21:46
Motor0.00 B03-11-11|21:46
PID0.00 B03-11-11|21:46
PS2_Key0.00 B03-11-11|21:46
PWM0.00 B03-11-11|21:46
TIM0.00 B03-11-11|21:46
USART0.00 B03-11-11|21:46
inc0.00 B03-11-11|21:46
src0.00 B03-11-11|21:46
cmsis0.00 B03-11-11|21:46
cmsis_boot0.00 B03-11-11|21:46
CoOS0.00 B03-11-11|21:46
Drive0.00 B03-11-11|21:46
list0.00 B03-11-11|21:46
obj0.00 B25-07-15|14:45
stdio0.00 B03-11-11|21:46
STM32F10x_StdPeriph_Driver0.00 B03-11-11|21:46
syscalls0.00 B03-11-11|21:46
BLDC0.00 B21-08-15|09:21
速度环PID0.00 B18-08-15|10:35
Sponsored links

printf.c (6.75 MB)

Need 1 point
Your Point(s)

Your Point isn't enough.

Get point immediately by PayPal

More(Debit card / Credit card / PayPal Credit / Online Banking)

Submit your source codes. Get more point


Don't have an account? Register now
Need any help?
Mail to:


CodeForge Chinese Version
CodeForge English Version

Where are you going?

^_^"Oops ...

Sorry!This guy is mysterious, its blog hasn't been opened, try another, please!

Warm tip!

CodeForge to FavoriteFavorite by Ctrl+D