OpenEdv-开源电子网

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

一段小代码帮忙看看啥毛病

[复制链接]

14

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
242
金钱
242
注册时间
2015-12-28
在线时间
51 小时
发表于 2016-1-28 15:37:23 | 显示全部楼层 |阅读模式
1金钱
int main(void)
{                       
        u16 time_cnt=0;
        Stm32_Clock_Init(9);
        delay_init(72);                           
        Ultran_Init();
        TIM3_Int_Init(9,719);  //10/(72 000 000/720) = 1/1 0000 = 0.1ms
        EXTIX_Init();
        while(1)
        {
                if(flag)      //flag会在0/1之间改变
                {
                        time_cnt = 1*(Count_Times*10+(TIM3->CNT+1));
                        Count_Times =0;
                        TIM3->CNT = 0;
                }
                        time_cnt =0;
        }       
}

在keil5,编译时候总是提示time_cnt定义了但是没有使用,这个警告,调试的结果也不对。其中Count_Times为u16,TIM3->CNT为volatile u16.

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

29

主题

246

帖子

0

精华

高级会员

Rank: 4

积分
968
金钱
968
注册时间
2014-10-9
在线时间
95 小时
发表于 2016-1-28 16:21:53 | 显示全部楼层
本帖最后由 yuanxinfei 于 2016-1-28 16:23 编辑

你可以在u16 time_cnt=0;这个前面加一个volatile,这样的话就不会出现那个警告了,这个可能大概应该和编译器的库有关吧(不确定)
下面是百度一个网友给的
volatile是易变的,不稳定的意思,volatile是关键字,是一种类型修饰符,用它修饰的变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其他线程等,遇到这个关键字声明的变量,编译器对访问该变量的代码不在进行优化,从而可以提供对特殊地址的稳定访问。
volatile 关键字告诉编译器该变量是随时可能发生变化的,每次使用它的时候必须从内存中取出他的值,因而编译器生成的汇编代码会从原内存地址中读取数据使用。
如果一个寄存器或者变量表示一个端口或者多个线程的共享数据,就容易出错,所以volatile可以保证对特殊地址的稳定访问。

淘宝小店,没事可以点一下增加点流量http://shop69767205.taobao.com/
回复

使用道具 举报

14

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
242
金钱
242
注册时间
2015-12-28
在线时间
51 小时
 楼主| 发表于 2016-1-28 18:09:14 | 显示全部楼层
yuanxinfei 发表于 2016-1-28 16:21
你可以在u16 time_cnt=0;这个前面加一个volatile,这样的话就不会出现那个警告了,这个可能大概应该和编译 ...

volatile这个我知道。
不是它的问题。
回复

使用道具 举报

29

主题

246

帖子

0

精华

高级会员

Rank: 4

积分
968
金钱
968
注册时间
2014-10-9
在线时间
95 小时
发表于 2016-1-28 18:37:49 | 显示全部楼层
新手驾到 发表于 2016-1-28 18:09
volatile这个我知道。
不是它的问题。

加上去没用吗
淘宝小店,没事可以点一下增加点流量http://shop69767205.taobao.com/
回复

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2016-1-28 19:09:23 | 显示全部楼层
怎么个不对法?你想达到什么目的?
业余程序玩家。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 07:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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