单片机——使用printf调试

配置printf()输出函数

1、来自于<stdio.h>

2、运行C语言时,输出到终端

3、单片机没有终端,需要使用串口,将要输出的内容传到电脑(串口调试助手)上

例子如下

#include <stdio.h>

#include "./SYSTEM/usart/usart.h"

int main(void){

/*

串口通信的通信方式:多采用异步,很少使用同步

注意:UART(通用异步串口通信) USART(通用同步异步串口通信)

*/

usart_init(115200); //初始化串口

//使用printf输出字符串 \r\n表示换行(为了兼容)

printf("FFFFFFFFF\r\n");

//验证大小端

uint8_t *p=(uint8_t*)&add;

printf("%d\r\n",*p); //以十进制整型输出 120

printf("%x\r\n",*p); //以十六进制输出 78

printf("%#x\r\n",*p); //以0x十六进制输出 0x78

printf("%#x\r\n",*(p+1)); //0x56

printf("%#x\r\n",*(p+2)); //0x34

printf("%#x\r\n",*(p+3)); //0x12

printf("%#x\r\n",*(p+4)); //随机值

}

①运行程序后

②把程序烧入到单片机上

③使用串口调试助手

注意:

1、打开串口没有内容显示?是因为代码没有写到while里,只运行一次,按复位键就会显示内容了

2、 打开串口后,重新烧入程序会出现问题?是因为没有关闭串口,把串口关闭后就可以重新烧入程序了

3、串口调试助手为什么会显示错误?usart_init(115200);与串口调试助手中的波特率保持一致

相关推荐
inputA38 分钟前
【LwIP源码学习6】UDP部分源码分析
c语言·stm32·单片机·嵌入式硬件·网络协议·学习·udp
思考的味道1 小时前
SVM在医疗设备故障维修服务决策中的应用:策略、技术与实践
嵌入式硬件
真的想上岸啊2 小时前
学习51单片机01(安装开发环境)
嵌入式硬件·学习·51单片机
7yewh3 小时前
MCU程序加密保护(二)ID 验证法 加密与解密
单片机·嵌入式硬件·安全
YOYO--小天3 小时前
RS485和RS232 通信配置
linux·嵌入式硬件
小_楠_天_问3 小时前
第二课:ESP32 使用 PWM 渐变控制——实现模拟呼吸灯或音调变化
c语言·嵌入式硬件·mcu·esp32·arduino·pwm·esp32-s3
欢乐熊嵌入式编程4 小时前
智能手表项目风险评估与应对计划书
嵌入式硬件·物联网·目标跟踪·智能手表
JANYI20185 小时前
TTL、RS-232、RS-485电平转换详解
单片机·嵌入式硬件
平凡灵感码头5 小时前
基于智能家居项目 解析DHT11温湿度传感器
单片机·智能家居
昊昊昊昊昊明6 小时前
十天学会嵌入式技术之51单片机—day-10
单片机·嵌入式硬件·51单片机