(1)问题描述: 多串口共用printf函数,百度到的资料大部分是建议重新写一个xx_printf(format, …)。但是使用起来还是不方便,就此问题而言加上一个判断语句便可解决。
(2)解决方法: printf函数最后调用的是int fputc(int ch, FILE *f),那么重新改写此函数便可。
(3)代码:
//标志量定义
int USART_PRINTF_FLAG = 2;//默认串口2
//改写
fputcint fputc(int ch, FILE *f)
{
if (USART_PRINTF_FLAG == 2)
{
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET);
USART_SendData(USART2,(uint8_t)ch);
}
else
{
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
USART_SendData(USART1,(uint8_t)ch);
}
return ch;
}
//中断处理
void USART1_IRQHandler(void)
{
USART_PRINTF_FLAG = 1;
//your coding here.。.
}
void USART2_IRQHandler(void)
{
USART_PRINTF_FLAG = 2;
//your coding here.。.
}

上一篇:浅析STM32的五大嵌入式操作系统的特点及不足
下一篇:一种经典的STM32 ADC多通道转换详细解析
- 热门资源推荐
- 热门放大器推荐
- 用于 7VIN 至 16VIN、1.5V 和 1.2V 输出的 LTM4628EV DC/DC 模块稳压器的典型应用电路
- 使用 Analog Devices 的 LTC3728LIGN 的参考设计
- DER-406 - 适用于 A19 灯的 5.76 W 高 PF 非隔离降压-升压型 TRIAC 调光 LED 驱动器
- ADR5045B 5V 输出精密微功率并联模式电压基准的典型应用
- LT3970EDDB-3.42 2.5V 降压转换器的典型应用
- MC78M08BDTG 8V 电流调节器的典型应用
- LT1021DCN8-5 精密电压基准的典型应用
- DER-282 - 100W, 扁平(11 mm), LLC DC-DC转换器
- REF193 低压差开尔文连接电压基准的典型应用电路
- LT3088EM 线性稳压器用于添加软启动的典型应用
- 14家工业智能企业入选《上海市智能机器人标杆企业与应用场景推荐目录》
- 大声量 | 2023机器视觉技术与应用峰会议程新鲜出炉!
- 海康机器人视觉检测方案守护光伏组件生产质量
- 艾利特CSF系列力控协作机器人来了!
- MTBF突破4万小时!这家工业级3D相机品牌产品稳定性获权威机构认可
- 爱芯元智亮相2022世界人工智能大会,核心技术AI-ISP“爱芯智眸®”正式发布
- 意法半导体和创迈思合作开发的OLED 屏下人脸认证解决方案将在 IFA 2022展出
- 英特尔亮相服贸会,以智能科技和“绿色”助力中国数字化变革
- 2022世界人工智能大会(WAIC)主题演讲速记
- BOE(京东方)独供华硕全球首款折叠笔记本Zenbook 17 Fold

现代雷达系统的信号设计
5962-89541022A

BFR340T






京公网安备 11010802033920号