📄 main.c
字号:
/*******************************************************************************
* File Name : main.c
* Author :
* Date First Issued : 03/31/2009
* Description : Main program body
********************************************************************************/
/* Includes ------------------------------------------------------------------*/
#include "..\header\stm32f10x_reg.h"
#include "..\header\type.h"
#include "..\header\mcp2515.h"
#include "..\header\hardware.h"
#include "..\header\can.h"
#include "..\header\spi.h"
#include "..\header\rcc.h"
#include "..\header\uart.h"
#include <stdio.h>
#include <string.h>
/* Local includes ------------------------------------------------------------*/
/* Private typedef -----------------------------------------------------------*/
u32 delay_ns(u32 n);
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
u32 delay_ns(u32 n)
{
int i,j;
for(j=0;j<n;j++)
for(i=0;i<5000;i++)
;
return 0;
}
/*******************************************************************************
* Function Name : main
* Description : Main program
* Input : None
* Output : None
* Return : None
*******************************************************************************/
int main(void)
{
CAN_MESSAGE rec_msg;
unsigned short int rec;
unsigned char buf[30];
rcc_intialize();
initialize_uart();
spi_initialize();
can_init();
//filter setting;
mcp2515_set_register(MCP_RXF0SIDH,0x05); //ID=0x05 can be receive;
mcp2515_set_register(MCP_RXF0SIDL,0x00);
mcp2515_set_register(MCP_RXM0SIDH,0xF6);
mcp2515_set_register(MCP_RXM0SIDL,0xE0);
mcp2515_set_register(MCP_RXB0CTRL,0x00); //receive all message, 0x0f->0xff,enable the filter;
mcp2515_set_register(MCP_RXB1CTRL,0x00); //RXB1CTRL;
INTIALIZE_CS;
//Led intialize;
GPIOB->CRL.B.CNF7 =0 ;
GPIOB->CRL.B.MODE7 =3 ;
delay_ns(10);
mcp2515_set_register(MCP_CANINTE,0x03);
//bit7-bit5: 000 naomal mode, 010 recycle mode, 100 setting mode;
mcp2515_set_register(0x4F,0x87); //out clock set, work mode set;
delay_ns(5);
memset(buf,0,40);
// mcp2515_set_register(0x31,0x);
while(1)
{
buf[9]= mcp2515_read_register(MCP_RXF0SIDH);
buf[10]= mcp2515_read_register(MCP_RXM0SIDH);
buf[11]= mcp2515_read_register(0x4f);
buf[12]= mcp2515_read_register(0x60);
buf[13]= mcp2515_read_register(0x70);
// buf[14]= mcp2515_read_register(MCP_RXM0SIDL);
can_test_transmit(0);
can_read_message(&rec_msg);
buf[0]=rec_msg.dlc;
buf[1]=rec_msg.dta[0];
buf[2]=rec_msg.dta[1];
buf[3]=rec_msg.dta[2];
buf[4]=rec_msg.dta[3];
buf[5]=rec_msg.dta[4];
buf[6]=rec_msg.dta[5];
buf[7]=rec_msg.dta[6];
buf[8]=rec_msg.dta[7];
send_buffer_to_uart(buf,14);
//send_string_to_uart(buf);
delay_ns(500);
GPIOB->BSRR.B.SETIO7=1;
delay_ns(500);
GPIOB->BSRR.B.CLRIO7=1;
// while(rec_msg->dlc==0x04);
// return 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -