keil中常用的c语言函数

//以下函数输出结果相同
char a[16] = "abcdefg"
printf("%s", a);
printf(a);
puts(a);

STM32带参数宏定义#define   下面两段效果相同

#define Buzzer(x)  GPIO_WriteBit(GPIOA, GPIO_Pin_7, (BitAction)(x))

#define Buzzer(x)  do{x?\
                      GPIO_WriteBit(GPIOA, GPIO_Pin_7, Bit_RESET):\
                      GPIO_WriteBit(GPIOA, GPIO_Pin_7, Bit_SET);\
                   }while(0)

strcmp:把 str1 所指向的字符串和 str2 所指向的字符串进行比较。

如果str1 = str2,则返回0

int strcmp(const char *str1, const char *str2)

delay_us函数:HAL库中无us延时函数,需自定义us延时

void delay_us(uint16_t cnt)
{
    uint8_t i;

    while(cnt)
    {
        for (i = 0; i < 10; i++)
        {

        }
        cnt--;
    }
}

sprintf函数:发送格式化输出到 str 所指向的字符串

sprintf函数在完成其他数据类型转换成字符串类型的操作中应用广泛

int sprintf( char *buffer, const char *format [, argument,…] );
用法  sprintf函数打印到字符串中
char Speed_Str[24];
int Speed_Cnt = 0;
sprintf(Speed_Str, "speed = %d m/s", Speed_Cnt);
Oled_Show_Str(1, 2, Speed_Str);

memset函数:清空字符串数据

void *memset(void *str, int c, size_t n)

形参1:数组地址

形参2:设置为0

形参3:数组大小        strlen(ch)

fputc函数:把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动。

int fputc(int char, FILE *stream)

例如,STM32重写 int fputc(int ch, FILE *f)

重定向是指fputc里面的输出指向目标设备。因printf函数调用了fputc,而fputc输出有默认指向的目标,且不同库中的fputc输出指向不同,所以需要重写fputc

若需要printf输出到串口,则需要将fputc里面的输出指向串口,这一过程称为重定向

int fputc(int ch, FILE *f)
{
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);

  return ch;
}

当需要使用scanf()函数的时候,重定向fgetc()函数

int fgetc(FILE *f)
{
  uint8_t ch = 0;
  HAL_UART_Receive(&huart1, &ch, 1, 0xffff);
  return ch;
}

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值