[技术问答] HC32F4A0 DDL_Printf函数

[复制链接]
2381|18
 楼主| peterxing2022 发表于 2022-6-24 14:18 | 显示全部楼层 |阅读模式
在使用华大官方EV_F4A0_LQ176_V10开发板进行测试的时候,运行官方最新版ddl-rev1.4.0中adc_base 测试样例时,发现DDL_Printf无法在串口工具中打印出命令,用的IDE 是 IAR 9.20.1。请问是IDE的原因还是驱动程序的原因?后来自己写了UART将数据输出到串口,但是又出现了乱码,有什么解决方案么?
martinhu 发表于 2022-6-24 16:27 | 显示全部楼层
使用之前有没有使能和初始化printf配置函数?
自己配置出现乱码,应该是波特率不对,配置波特率的时候需要考虑PCLK频率和波特率匹配关系,太高的主频可能设置不了太低的波特率。调用波特率设置函数的时候应该会有返回值

评论

使能和初始化都有。 DDL_printf 是官方写的驱动库里面的宏, #define DDL_Printf (void)printf, printf 是在stdio.h里面, __EFF_NW1 __DEPREC_PRINTF int printf(const char *_Restrict, ...); __EFF_NW1 __ATTRIBUTES int puts(const char *); 会不会是IDE的原因?有人用低版本的IAR就可以输出了。   发表于 2022-6-27 15:46
foxsbig 发表于 2022-6-26 11:22 | 显示全部楼层
调用波特率设置函数的时候应该会有返回值?

返回什么呢

评论

波特率设置115200,adc采样采用default system clock MRC(8MHz)。  发表于 2022-6-27 15:48
wubangmi 发表于 2022-6-27 17:31 | 显示全部楼层
你配一下主频,默认8M主频好像是精度不够,所以会出现乱码
HC11425 发表于 2022-6-28 17:38 | 显示全部楼层
9600波特率确实是跑不了的,需要把串口时钟64分频,即可。乱码多数原因是PLCK主频太快了

/* Initialize UART. */
    (void)USART_UART_StructInit(&stcUartInit);
    stcUartInit.u32ClockDiv = USART_CLK_DIV128;
    stcUartInit.u32Baudrate = 115200UL;
    stcUartInit.u32OverSampleBit = USART_OVER_SAMPLE_8BIT;
caigang13 发表于 2022-7-1 08:36 来自手机 | 显示全部楼层
乱码的话多半还是波特率或者时钟配置有问题
tpgf 发表于 2022-7-5 11:53 | 显示全部楼层
会不会是版本不匹配啊
wakayi 发表于 2022-7-5 12:02 | 显示全部楼层
8M应该差不多吧
wowu 发表于 2022-7-5 12:11 | 显示全部楼层
实际发送乱码吗
xiaoqizi 发表于 2022-7-5 12:17 | 显示全部楼层
应该没有返回值的吧
木木guainv 发表于 2022-7-5 12:44 | 显示全部楼层
用示波器看一下波形
磨砂 发表于 2022-7-5 13:28 | 显示全部楼层
这个波特率应该很稳定
isseed 发表于 2022-7-8 09:44 | 显示全部楼层
测量一下晶振是不是正确  
232321122 发表于 2022-7-8 10:18 | 显示全部楼层
看看波特率是不是配置错误了   
jkl21 发表于 2022-7-8 16:16 | 显示全部楼层
波特率有问题?  
robincotton 发表于 2022-7-9 12:51 | 显示全部楼层
DDL_Printf函数是什么作用
jimmhu 发表于 2022-7-9 13:27 | 显示全部楼层
串口直接printf不行吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部