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

求问一下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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版