你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

求问一下stm32的定时器与enc28j60的问题

[复制链接]
詹科联手走天下吗 提问时间:2017-8-1 11:27 /
悬赏3ST金币已解决

//包括SPI初始化/IO初始化等
void ENC28J60_Reset(void)
{
RCC->APB2ENR|=1<<3;     //使能PORTB时钟      
  RCC->APB2ENR|=1<<5;  //使能PORTD时钟
  RCC->APB2ENR|=1<<8;  //使能PORTG时钟
GPIOD->CRL&=0XFFFFF0FF;
GPIOD->CRL|=0X00000300; //PD2 推挽      
GPIOD->ODR|=1<<2;     //PD2上拉     
//这里PG7和PB12拉高,是为了防止NRF24L01和SPI FLASH影响.
//因为他们共用一个SPI口.
GPIOB->CRH&=0XFFF0FFFF;
GPIOB->CRH|=0X00030000; //PB12 推挽      
GPIOB->ODR|=1<<12;      //PB12上拉
GPIOG->CRL&=0X00FFFFFF;
GPIOG->CRL|=0X33000000; //PG6/7 推挽      
GPIOG->CRH&=0XFFFFFFF0;
GPIOG->CRH|=0X00000003; //PG8 推挽      
GPIOG->ODR|=7<<6;     //PG6/7/8 上拉
  SPI2_Init();   //初始化SPI2
//针对ENC28J60的特点(SCK空闲为低电平)修改SPI的设置
  SPI2->CR1&=~(1<<6);  //SPI设备失能
SPI2->CR1&=~(1<<1);  //空闲模式下SCK为0 CPOL=0
SPI2->CR1&=~(1<<0);  //数据采样从第1个时间边沿开始,CPHA=0  
SPI2->CR1|=1<<6;   //SPI设备使能

SPI2_SetSpeed(SPI_SPEED_4); //SPI2 SCK频率为36M/4=9Mhz
  TIM6_Int_Init(1000,719);//100Khz计数频率,计数到1000为10ms
ENC28J60_RST=0;   //复位ENC28J60
delay_ms(10);  
ENC28J60_RST=1;   //复位结束        
delay_ms(10);  
}


想问一下在enc28j60的初始化为什么么要开启定时器6??


最佳答案

查看完整内容

它可能是用定时器来定时读取28j60的数据吧。 你可以进入中断程序看看,是否有一个读取标志, 跟踪一下就知道了。
收藏 1 评论3 发布时间:2017-8-1 11:27

举报

3个回答
无薪税绵 回答时间:2017-8-1 11:27:52
它可能是用定时器来定时读取28j60的数据吧。
你可以进入中断程序看看,是否有一个读取标志,
跟踪一下就知道了。

评分

参与人数 1ST金币 +3 收起 理由
zero99 + 3

查看全部评分

maxtch 回答时间:2017-12-9 21:27:29
ENC28J60 有一条中断线,是不是这条线没接,TIM6 拿来做轮询代替中断了?

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

arm8686 回答时间:2017-12-11 09:18:09
是给这个 delay_ms(10); 函数使用的吧?
你查一下这个延时函数,里面可能是
    赋初值
    启动定时器
    查询某标识位,等待置位
    关闭定时器
这样的实现。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版