完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
在使用stm32做项目时,我们常常会使用到串口调试,通过串口来输出我们想要看的相关参数值,这样既方便有快捷。 具体方法有哪些呢,我自己整理了一下,这个也是借鉴别人的用法而已。希望大家可以相互讨论学习。 1、使用printf语句通过串口输出我们想要的参数值 具体的用法:使用之前必须包含相应的头文件#include < stdio.h > int fputc(int ch, FILE *f)//重定向,让printf输出到串口 { USART_SendData(USART1, (uint8_t) ch); while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET); return ch; } 使用以上函数那必须在stm32在目标选项中必须勾选Use MicroLIB选项。同时当然需要配置stm32串口的相关初始化才可以,这样就可以使用printf函数来进行串口输出。可以实现在VS下编程使用的的printf函数。 2、使用宏定义的方式进行串口输出,其实与printf函数一样的,只是变了种形式而已,很方便的调用所使用的串口。 具体的用法:使用之前必须包含相应的头文件#include< stdio.h > // 定义调试串口 #define DEBUG_UART UART7 // 是否输出调试信息 #define DEBUG_PRINTF #ifdef DEBUG_PRINTF #define debug(FORMAT, ...) printf(FORMAT, ##__VA_ARGS__) #else #define debug(FORMAT, ...) #endif 以上,可在文件的开始宏定义相关的内容,之后再用使用以下函数进行输出内容。同时在配置相关的串口内容即可使用调试串口。 1 int fputc(int ch, FILE *f)//重定向,让printf输出到串口 { USART_SendData(DEBUG_UART, (uint8_t) ch); while (USART_GetFlagStatus(DEBUG_UART, USART_FLAG_TXE) == RESET); return ch; } 3、使用串口发送单字节或多字的数据 /************************************************* * @函数名称: USARTx_Send_Byte * @函数功能: 串口单个字节 * @输入参数: USARTx: 选择发送数组使用的串口号 * byte: 要发送的数组首地址 * @输出参数: 无 * @返回值 : 无 * @其它说明: 无 *************************************************/ void USARTx_Send_Byte(unsigned char byte) //串口发送一个字节 { USART_SendData(USARTx, byte); //通过库函数发送数据 while( USART_GetFlagStatus(USARTx,USART_FLAG_TC)!= SET); //等待发送完成。 检测 USART_FLAG_TC 是否置1; } /************************************************* * @函数名称: UARTx_Send_Str * @函数功能: 串口发送字符串 * @输入参数: USARTx: 选择发送数组使用的串口号 * *s: 要发送的数组首地址指针 * @输出参数: 无 * @返回值 : 无 * @其它说明: 发送字符串函数应用指针方法 *************************************************/ void UARTx_Send_Str(unsigned char *s) { unsigned char i=0; //定义一个局部变量用来发送字符串 while(s!=' |