完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
硬件环境:nodeMCU
我从github下载了最新的RTOS SDK,并且仅仅在初始化 user_init() 函数里添加了一个函数 uart_init_new() 然后编译。生成bin文件,下载进入nodemcu里面,芯片初始化打印信息可以正常显示,波特率是74880,说明晶振是26MHz,其他的用户打印数据输出全部乱码(任务信息和printf("SDK version:%sn", system_get_sdk_version()))。而把putty设置为48672波特率时正常打印出用户数据。是什么原因呢? |
|
相关推荐
1个回答
|
|
这个问题可能是由于串口初始化时波特率设置不正确导致的。在ESP8266 RTOS SDK中,uart_init_new() 函数用于初始化串口。如果波特率设置不正确,可能会导致输出数据乱码。
以下是一些建议来解决这个问题: 1. 检查uart_init_new()函数中的波特率设置。确保波特率设置为74880,与硬件环境一致。如果波特率设置不正确,将导致数据传输错误。 ```c uart_init_new(74880, BIT_RATE_74880); ``` 2. 确保在user_init()函数中调用uart_init_new()函数。这将确保在程序启动时初始化串口。 ```c void user_init(void) { // 其他初始化代码 uart_init_new(); } ``` 3. 检查printf函数的实现。确保printf函数正确地将数据发送到串口。如果printf函数实现有问题,可能会导致数据输出乱码。 4. 检查硬件连接。确保NodeMCU与计算机之间的串口连接正确,没有损坏或接触不良。 5. 如果问题仍然存在,尝试使用其他串口调试工具,如Minicom或CoolTerm,以排除串口工具问题。 6. 如果以上方法都无法解决问题,可以尝试在ESP8266 RTOS SDK中查找其他开发者遇到类似问题的解决方案,或者在相关社区和论坛寻求帮助。 总之,这个问题可能是由于波特率设置不正确或串口初始化问题导致的。请按照上述建议进行检查和调整,以解决乱码问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
1138 浏览 1 评论
576浏览 6评论
477浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
461浏览 5评论
462浏览 4评论
435浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 12:12 , Processed in 0.845448 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号