|
发表于 2020-9-7 10:11:21
|
显示全部楼层
我的是这样使用的
static __attribute__((section (".RAM_D4"))) char buf_str[256]; //最多一次能够输出 256 个字符
void App_Printf(char *format, ...)
{
uint32_t _i, _strCnt;
va_list v_args;
va_start(v_args, format);
(void)vsnprintf((char *)&buf_str[0],
(size_t ) sizeof(buf_str),
(char const *) format,
v_args);
va_end(v_args);
_strCnt = strlen(buf_str);
/* 互斥信号量 */
if(OSStatRdy == TRUE)//系统已经运行
{
tx_mutex_get(&AppPrintfSemp, TX_WAIT_FOREVER);
for(_i=0; _i<_strCnt; _i++)
{
USART1->TDR = (int)buf_str[_i];
/* 等待发送结束 */
while((USART1->ISR & USART_ISR_TC) == 0)
{}
}
tx_mutex_put(&AppPrintfSemp);
}
else
{
for(_i=0; _i<_strCnt; _i++)
{
USART1->TDR = (int)buf_str[_i];
/* 等待发送结束 */
while((USART1->ISR & USART_ISR_TC) == 0)
{}
}
}
}
|
|