STM32的一些使用配置

1. KEIL

1.1 复位函数

__set_FAULTMASK(1);
NVIC_SystemReset();

2. STM32CubeIDE

2.1 使用printf函数

加在某个地方, usart.c 或者 main.c中

#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#define GETCHAR_PROTOTYPE int __io_getchar(FILE *f)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#define GETCHAR_PROTOTYPE int fgetc(FILE *f)
#endif /* __GNUC__ */
PUTCHAR_PROTOTYPE
{
	HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
	return ch;
}
GETCHAR_PROTOTYPE
{
	uint8_t ch = 0;
	HAL_UART_Receive(&huart1,(uint8_t *)&ch, 1, 0xFFFF);
	if (ch == '\r')
	{
		__io_putchar('\r');
		ch = '\n';
	}
	return __io_putchar(ch);
}

头文件引用:

#include <stdio.h>

IDE配置:

  1. 右键当前工程:

在这里插入图片描述
2. 使用scanf库文件
在这里插入图片描述

2.2 编译输出Hex和Bin文件

工具栏 - project - properties
在这里插入图片描述

按照步骤设置:
在这里插入图片描述
设置完成后,Apply and Close,编译后,在Debug文件夹中可以看到输出的文件。

2.3 相同代码高亮显示

如下开关打开(按下)则高亮显示相同的代码,关闭则只显示当前选中的部分。

在这里插入图片描述

2.4 判断数据开头函数

if(starts_with((char *)usart1_rxsavebuf, “SWWW,”)) //*判断开头

/*字符串处理函数 char数组或者uint8_t数组*/
uint8_t starts_with(const char *src, const char *key)
{
    while (*key)
        if (*key++ != *src++)
            return 0;
    return 1;
}

2.5 数据截取及转换函数

SW,12,23,45,87,88,\r\n

if(starts_with((char *)usart5_rxsavebuf, "SW,"))  //*判断开头
 {
  strtok((char *)usart5_rxsavebuf, ",");      //接收到的第一个“,”之前的数据  -- SW
  p_pedalSmall_roll = strtok(NULL, ",");   //12
  p_pedalSmall_pitch = strtok(NULL, ","); //23
  d_pedalSmall_roll = strtod(p_pedalSmall_roll, &end);  //将字符型数据 p_pedalSmall_roll 转换为双精度浮点型数据,下同 
  d_pedalSmall_pitch = strtod(p_pedalSmall_pitch, &end);
//			  printf("%s,\r\n", p_pedal1_);  //打印接收到的踏板SMALL数值
//			  printf("%.1f,%.1f\r\n", d_pedalSmall_roll, d_pedalSmall_pitch);  //打印接收到的踏板SMALL数值
  /*clear*/
 }
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LuDvei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值