OpenEdv-开源电子网

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

其他实验加入了USMART文件编译正常-使用串口软件后发现list等指令都无效

[复制链接]

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
发表于 2015-1-27 10:03:50 | 显示全部楼层 |阅读模式
5金钱

小弟将ADC等其他实验加入了USMART文件编译正常无误

经联机串口软件后发现list等指令都无效

将单纯USMART实验调试后正常可使用list等指令

目前不知道是否还有其他内容需要修改没发现得请大家给点意见

是不是USMART不支持哪些实验或功能?

正點原子TFT_LCD(LCD1602&VET6-USMART)20150126.rar

3.72 MB, 下载次数: 51

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

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2015-1-27 10:30:43 | 显示全部楼层





查看了USMART的使用文件中发现内容说到要在增加内容

定时器中断2用来执行USMART扫描但是我在USMART实验中并没有看到使用TIME的文件不知道这部分是不是有关连


http://www.openedv.com/posts/list/877.htm?fromAll=0

回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2015-1-27 10:38:39 | 显示全部楼层
回复【2楼】hack906447:
---------------------------------
目前发现TIME2已经在USMART.C里面了但是USMART还是输入指令无效
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2015-1-27 21:29:23 | 显示全部楼层
现在进行所有文件比对并逐一删除函数来测试
发现问题了但还是不知道为什么会冲突
usmart会跟LCD1602函数与TIM3_Int_Init(49999,7199)函数冲突
只要运行这两个其中一个函数就会出现指令无效的情况
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-1-27 23:03:21 | 显示全部楼层
回复【4楼】hack906447:
---------------------------------
你看下TIM2的寄存器状态,是不是你配置TIM3的时候,把TIM2的设置给改了?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2015-1-28 22:01:24 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
原子哥TIM3_Int_Init(49999,7199)函数完全套用你的代码没有改过
TIM3_Int_Init代码如下
void TIM3_Int_Init(u16 arr,u16 psc)
{
  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能

//定时器TIM3初始化
TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值
//设置累加数
TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值
//预分频值
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim 分频为0 (不分割) 
//(1)采样频率基准fDTS=定时器输入频率fCK_INT (2)采样频率基准fDTS=定时器输入频率fCK_INT/2 
//(3)采样频率基准fDTS=定时器输入频率fCK_INT/4 
  //00: tDTS = tCK_INT - 01: tDTS = 2 × tCK_INT - 10: tDTS = 4 × tCK_INT 
  //手册上写的是tDTS,这是用时间表示;我写的是fDTS,是用频率表示;频率与时间互为倒数,做运算时当然要乘除法互换了
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式 (累加计时)
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位
  //进行TIM3初始化
TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //使能指定的TIM3中断,允许更新中断

//中断优先级NVIC设置
NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  //TIM3中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  //先占优先级0级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  //从优先级3级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
NVIC_Init(&NVIC_InitStructure);  //初始化NVIC寄存器


TIM_Cmd(TIM3, ENABLE);  //使能TIMx  
}
u8 i=0;
我自行设置的lcd1602初始化如下

void LCD1602_Init(void)
{  
A1602_GPIO_Configuration(); //LCD1602的11个端口配置初始
    delay_nms(100);      //延时20ms        
LCD_Writecmd(0x38);  //16*2显示,5*7点阵,8位数据
delay_nms(10);
LCD_Writecmd(0x38);  //16*2显示,5*7点阵,8位数据
delay_nms(10);
LCD_Writecmd(0x38);  //16*2显示,5*7点阵,8位数据
delay_nms(10);
LCD_Writecmd(0x38);  //16*2显示,5*7点阵,8位数据
delay_nms(10);
LCD_Writecmd(0x08);  //先关显示,后开显示
delay_nms(10);
LCD_Writecmd(0x01);  //清除LCD的显示内容
delay_nms(10);
LCD_Writecmd(0x06);  //自动右移光标,0x04为左移光标
delay_nms(10);
LCD_Writecmd(0x0c);  //显示开,关光标;0x08为关显示
delay_nms(10);
目前还想不出来是哪里出了问题
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-1-28 22:29:49 | 显示全部楼层
回复【6楼】hack906447:
---------------------------------
看看定时2的中断,还有没有正常进入?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2015-1-29 06:18:00 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
请教一下原子哥
有试过在单纯tim3的实验中加入usmart来调试过吗?
如果单纯在tim3情况下也不能调用是不是算不支援?
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2015-1-29 10:24:30 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
确切的问题出在这里
在清除TIMx更新中断标志内增加了LCD1602函数显示会导致无法在串口软件内输入指令
难怪TIM3跟LCD1602两个互对应的函数都不能让串口软件输入list等相关指令
不知道原子哥你知道什么原因呢?
计时到了触发中断并给予中断后要执行的动作这样的流程有问题吗?
void TIM3_IRQHandler(void)   //TIM3中断
{
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)  //检查TIM3更新中断发生与否
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );     //清除TIMx更新中断标志 
i++;
if(i==1)
 {
    LCD_Setpos_DisplayString(2,0,"TIME GO");
 }
if(i==2)
 {
LCD_Setpos_DisplayString(2,0,"TO TIME");
 }
if(i>=3)
{
i=0;
}
}
}
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-1-29 10:36:13 | 显示全部楼层
回复【9楼】hack906447:
---------------------------------
是不是你的显示函数耗时太久?
然后一直在中断?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2015-1-29 13:29:48 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
目前我怀疑的三个方向
1. 是否有可能进入计时中断死循环
2. 是否有可能中断函数内不可加入多行程序
3. 是否因为运行中断内函数可能时间过长-导致TIM2或USMART的运行延迟

原子哥你的猜测跟我其中一样刚好符合
但是我的TIM3_Int_Init(49999,7199)的中断时间应该够让USMART连接串口软件才是?
还是说链接串口软件后会一直占用资源?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-1-30 00:08:44 | 显示全部楼层
回复【11楼】hack906447:
---------------------------------
usmart不响应,基本就是轮询没有处理.
如果轮询有处理,就检查串口接收数据是否正常.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2015-1-30 20:34:35 | 显示全部楼层
回复【12楼】正点原子:
---------------------------------
仿真查的出来吗?
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2015-1-30 20:42:01 | 显示全部楼层
回复【12楼】正点原子:
---------------------------------
请问原子哥
http://goods.ruten.com.tw/item/show?21310118138672
这种仿真器跟jtag那个好用?
 貌似这个小很多
不知道仿真功能谁的好?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-1-30 22:40:41 | 显示全部楼层
回复【14楼】hack906447:
---------------------------------
这是ST LINK,支持ST自家的芯片.
JTAG则通杀所有ARM.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2015-1-31 10:40:48 | 显示全部楼层
回复【15楼】正点原子:
---------------------------------
你见识真广
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-26 07:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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