请问为什么我的printf("读出的步长为%d ",*((u16*)bu_chang));不能正常换行吗

2019-07-21 00:22发布

                                        delay_ms(200);
                          STMFLASH_Read(FLASH_SAVE_ADDR+0x0006,(u16*)datatemp,SIZE);
                                  delay_ms(200);
                                printf("读出的角度为%d    ",*((u16*)datatemp));
                                        delay_ms(200);
              STMFLASH_Read(FLASH_SAVE_ADDR+0x0002,(u16*)bu_shu,SIZE);
                                delay_ms(200);
                                printf("读出的步数为%d    ",*((u16*)bu_shu));
                                        delay_ms(200);
                                STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)bu_chang,SIZE);
                                  delay_ms(200);
                                printf("读出的步长为%d    ",*((u16*)bu_chang));
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
Greece
1楼-- · 2019-07-22 08:12
 精彩回答 2  元偷偷看……
our单片机
2楼-- · 2019-07-22 13:02
xkwy 发表于 2016-1-7 22:12
我看你这代码,感觉你指针滥用了,尤其是强制类型转换,它越过了C语言的严格类型检查,容易导致即使有错 ...

楼主指针并没有滥用,语法也是正确,之所以出现这种情况,多数是串口调试助手显示
不兼容中英文混合打印的结果,所以,建议楼主更换别的串口软件试试看!
phmatthaus
3楼-- · 2019-07-22 18:49
每次调用STMFLASH_Read()前先将datatemp/bu_shu/bu_chang清零。
例如:
memset(bu_shu, 0x00, sizeof(bu_shu));

试一下看看效果。

一周热门 更多>