OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4877|回复: 7

使用微库 printf 数据有误

[复制链接]

7

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-2-1
在线时间
3 小时
发表于 2014-12-24 13:07:09 | 显示全部楼层 |阅读模式
5金钱
不用微库 不重定向 fputc     
用原子串口例程里的
struct __FILE 

int handle; 
}; 
...........

打印AD采样数据 没问题 

用微库重定向 fputc 打印数据 有一个AD通道的数据有问题 明显不是实际数值 很奇葩的问题 不用微库打印的数据都是正常的 用了微库 有一个通道时正常的 怀疑是不是微库的问题 不了解 谁遇到过类似的情况啊 

我的AD用的是DMA连续采样模式 在定时器里调用AD 采集 

最佳答案

查看完整内容[请看2#楼]

我的代码和楼上的一样 问题找到了 更改一下优化等级就好了 我原来用的优化等级是0  改成默认的2 level 就好了 可能是微库 和优化等级有关吧 或者是在0优化等级下 微库有时候会有内存读写错误
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-2-1
在线时间
3 小时
 楼主| 发表于 2014-12-24 13:07:10 | 显示全部楼层
我的代码和楼上的一样 问题找到了 更改一下优化等级就好了 我原来用的优化等级是0  改成默认的2 level 就好了 可能是微库 和优化等级有关吧 或者是在0优化等级下 微库有时候会有内存读写错误
回复

使用道具 举报

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1292
注册时间
2014-12-20
在线时间
534 小时
发表于 2014-12-24 13:54:57 | 显示全部楼层
//////////////////////////////////////////////////////////////////
//加入以下代码,支持printf函数,而不需要选择use MicroLIB   
#if 1
#pragma import(__use_no_semihosting)             
//标准库需要的支持函数                 
struct __FILE 

int handle; 

}; 

FILE __stdout;       
//定义_sys_exit()以避免使用半主机模式    
_sys_exit(int x) 

x = x; 

//重定义fputc函数 
int fputc(int ch, FILE *f)
{      
while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
    USART1->DR = (u8) ch;      
return ch;
}
#endif 

/*使用microLib的方法*/
 /* 
int fputc(int ch, FILE *f)
{
USART_SendData(USART1, (uint8_t) ch);

while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) {}
   
    return ch;
}
int GetKey (void)  { 

    while (!(USART1->SR & USART_FLAG_RXNE));

    return ((int)(USART1->DR & 0x1FF));
}
*/
回复

使用道具 举报

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1292
注册时间
2014-12-20
在线时间
534 小时
发表于 2014-12-24 14:52:53 | 显示全部楼层
回复【3楼】蓝瑟lemon:
---------------------------------
哦哦。默认是不优化的。看来你改了。
回复

使用道具 举报

7

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-2-1
在线时间
3 小时
 楼主| 发表于 2014-12-25 12:00:03 | 显示全部楼层
回复【4楼】BMN李:
---------------------------------
默认是优化等级2
回复

使用道具 举报

7

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-2-1
在线时间
3 小时
 楼主| 发表于 2014-12-25 12:00:26 | 显示全部楼层
回复【4楼】BMN李:
---------------------------------
0 是不优化
回复

使用道具 举报

12

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2014-9-1
在线时间
0 小时
发表于 2014-12-25 19:55:01 | 显示全部楼层
回复【6楼】蓝瑟lemon:
---------------------------------
优化等级怎么改 在哪里改
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-25 22:11:19 | 显示全部楼层
回复【7楼】zhanghao:
---------------------------------
在C/C++选项卡
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-27 15:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表