近日小编公司收到了MDK的律师函,没办法只能选择使用开源的或者免费的IDE工具。考虑多方面因素小编最后决定还是使用STMicroelectronics原厂配套的STM32CubeIDE。小编发现网络上关于cubeIDE的教程还是比较少的,于是乎就有了做一个合集教程的想法,把使用STM32CubeIDE的相关小技巧一一分享给大家。本教程不额外说明都是基于HAL库!(STM32CubeIDE会自动更新部件,建议保持最新版本)
怎么新建工程,然后配置哪个外设作为printf的硬件小编就不做赘述,本次教程小编是用PA10,PA9的UART1作为printf的物理层输出。如果是在MAK里面配置先要选什么Use MicroLIB如上图,在stm32cubeide里面不需要这个步骤,应该说是最新更新的版本里面没有这个选项了。我们需要使用printf需要做2个步骤,第1步就是在代码里面添加重映射代码,第2步就是配置一些选项,接下来我们看一下。
我们先要把重定向相关代码加到/* USER CODE BEGIN 4 /和/ USER CODE END 4 */之间,不要乱加不然下次更新代码会被IDE删除的。这里我们用的是USART1,所以重定向里面的接收和发送函数要重定向到USART1。
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);
}
除此以外,在/* Private includes下添加包含printf函数的头文件,#include
当然,按照第1个步骤配置了以后,一般情况下使用printf是没有问题的了。但是有时候,就如上面这位网友遇到的问题一样。当你要答应float型就是浮点型数据的时候,ide就会报错了,那么此时我们应该怎么办呢。
右击工程图标,点击properties,点击C/C++ Build-->Settings在Tool Settings标签下选择MCU Settings,把两个Use float with...的复选框勾选上电极apply后即可,这样就可以打印float类型的数据了。
聚聚们以上步骤学会了吗😁
产品软硬件方案合集