Tlsr8258开发-利用GPIO模拟串口打印调试信息

在app_config.h中添加如下代码

#ifndef UART_PRINT_DEBUG_ENABLE
#define UART_PRINT_DEBUG_ENABLE 1
#endif
/// PRINT DEBUG INFO ///
#if (UART_PRINT_DEBUG_ENABLE)
#define PRINT_BAUD_RATE 115200
#define DEBUG_INFO_TX_PIN GPIO_PC2
#define PULL_WAKEUP_SRC_PC2 PM_PIN_PULLUP_10K
#define PC2_OUTPUT_ENABLE 1
#define PC2_DATA_OUT 1 //must
#endif

注意:官方的参考手册写的是PA0,我将其改成了PC2,请注意修改的位置

 

 从串口打印的数据来看,每隔5秒打印一次,这里应该和蓝牙的广播间隔有关。当连接蓝牙后,这个位置是不会打印。有知道为什么的小伙伴解答一下!!!

增加调试打印的一些信息:

/*
 * mat_log.h
 *
 *  Created on: 2022-8-16
 *  
 */

#ifndef MAT_LOG_H
#define MAT_LOG_H
#include "tl_common.h"

#define DEBUG	1
#define ERR		1
#define INFO	1

#if	INFO
	#define LOG_INFO(str, ...)  printf("[INFO]:"str "\r\n", ##__VA_ARGS__)
#else
	#define LOG_INFO(str, ...)
#endif

#if ERR
	#define LOG_ERR(str, ...)   printf("[ERR]:"str "\r\n", ##__VA_ARGS__)
#else
	#define LOG_ERR(str, ...)
#endif

#if DEBUG
	#define LOG_DEBUG(str, ...) printf("[DEBUG]:"str "\r\n", ##__VA_ARGS__)
#else
	#define LOG_DEBUG(str, ...)
#endif

#endif

关于上诉问题的解答:

        为什么在while(1)中的数据打印会如此的慢,其实是因为在蓝牙demo中,蓝牙会休眠所导致的,请参考IIC那一章关闭休眠的方法:Tlsr8258开发-IIC_他日仙界再相逢,一声道友尽沧桑的博客-CSDN博客

/*
 *在app.c中有这么一个函数,这里休眠时间在30ms,这样就所以160 * 30 = 4800ms,和上面打印的数据相吻合
 */
void  ble_remote_set_sleep_wakeup (u8 e, u8 *p, int n)
{
	if( blc_ll_getCurrentState() == BLS_LINK_STATE_CONN && ((u32)(bls_pm_getSystemWakeupTick() - clock_time())) > 80 * SYSTEM_TIMER_TICK_1MS){  //suspend time > 30ms.add gpio wakeup
		bls_pm_setWakeupSource(PM_WAKEUP_PAD);  //gpio pad wakeup suspend/deepsleep
	}
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

入门->放弃

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

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

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

打赏作者

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

抵扣说明:

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

余额充值