MCP2515调试笔记—-初始化注意事项

MCP2515调试笔记—-初始化注意事项在调试基于F103单片机的MCP2515时,怎么调试都不正常,用的还是以前调试过的代码,隔了一段时间后再重新运行就不行了;于是单步运行调试,没想到,单步运行调试竟然成功了;于是想到是延时的问题,在初始化那里的reset函数里加了个延时,再下载进去板子里果然就正常了。voidmcp2515_reset(void){staticuint8_tstatus;uint8_tcmd=MCP2515_CMD_RESET;mcp2515_cs_enable();//置M…

大家好,欢迎来到IT知识分享网。MCP2515调试笔记----初始化注意事项

在调试基于F103单片机的MCP2515时,怎么调试都不正常,用的还是以前调试过的代码,隔了一段时间后再重新运行就不行了;

于是单步运行调试,没想到,单步运行调试竟然成功了;于是想到是延时的问题,在初始化那里的reset函数里加了个延时,再下载进去板子里果然就正常了。

void mcp2515_reset(void)
{

    static uint8_t status;
    uint8_t cmd = MCP2515_CMD_RESET;
    mcp2515_cs_enable();//置MCP2515的CS为低电平
    status = HAL_SPI_Transmit(&hspi1,&cmd,1,100);//发送写命令//发送寄存器复位命令
    delay_ms(100); //没有这个延时,下载到板子里就不能正行发送数据,单步调试过去这里后就能正常运行,所以断定是没有这个延时的原因。
    mcp2515_cs_disable(); //置MCP2515的CS为高电平
}

看了MCP2515的datasheet后,SPI接口描述如下图,MCP2515第一次发送数据时,需要先拉高CS引脚,再拉低CS引脚进行写入数据;于是按照下面更改mcp2515_reset函数也是可以正常运行的:

void mcp2515_reset(void)
{

    static uint8_t status;
    uint8_t cmd = MCP2515_CMD_RESET;
    mcp2515_cs_enable();//置MCP2515的CS为低电

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/14100.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信