In order to facilitate debugging, we often need to use the printf function to print out debugging information. In Keil software, if you want to use the printf output function, please note that you need to select the use MicrolLIB option first, as shown below.
Next, add the declaration of the printf function below the header file of the main function. The code is as follows:
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "stm32f4xx_hal.h"
// The added code is as follows, function refactoring
#ifdef __GNUC__ //gcc compiler macro definition
/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
set to 'Yes') calls __io_putchar() */
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
/*The above means:
If the macro __GNUC__ is defined, that is, using the GCC compiler, then define the macro #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
If the macro __GNUC__ is not defined, that is, the GCC compiler is not used, then define the macro #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) */
//Add the implementation part of printf reconstruction function
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
Add a print output function in the while(1) loop of the main function to test the effect.
while (1)
{
printf("printf teset\r\n");//print output
HAL_Delay(1000); //Delay 1S
}
The test result is as shown in the figure below, which can realize the printing of printf function.
Previous article:STM32—cubeMX+DMA+USART receives data of any length
Next article:Detailed explanation of time.h file in STM32
Recommended ReadingLatest update time:2024-11-16 13:58
- Popular Resources
- Popular amplifiers
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- Last week: 100 sets of Pingtouge RISC-V development boards, invite you to play ~ Come quickly ~ Share with friends and win red envelopes
- HP laser printer original toner cartridges are useless if you don't open them after using them up.
- Problems caused by macros that IAR cannot find defaulting to 0
- help
- FPGA technology introduction and FPGA application fields
- Reward for the first person to reply
- Learn MSP430F5529 programming routines
- Diode as a temperature compensation circuit for transistors
- Questions about DC Boost Circuit
- How to deal with this?