下载中心

工业物联网通讯专家!
认真做好每一件事,设计简单、可靠、价格合理的产品!

MCP2515 程序范例 ATmega8和16两种 GCC编译

运行平台

文件大小

0 MB

详细描述

MCP2515 程序范例 ATmega8和16两种 GCC编译,内容完整,真实可用,还有USART和LCD功能代码。

部分代码如下:

//************************************************************* //*   函数说明:Main函数                                 * //*   输入:    无                                       * //*   输出:    无                                           * //*   调用函数:                                         * //************************************************************* int main(void) {  cli();     //关全局中断  u08 KeyNum = 0xff;   u08 temp[8] = {0,0,0,0,0,0,0,0};  u32 ID_S ;  u08 data_S[8] = "/Hello! ";  u08 temp_reg;  u08 length_S ;  u08 flags_S ;    length_S  = 8 ;  ID_S    = 0xa5a4a3a2;  flags_S  = 0 ;    receive_num = 0;  port_init();  uart_init();  SPI_MasterInit();        //SPI初始化,并启动  mcp2515_init();         //MCP2515初始化 // LCDInit();          //LCD1602初始化    sei();   //开全局中断   // DisplayListChar(0 , 0, data_S);   // can_send_message( ID_S, data_S, length_S, flags_S);    mcp2515_read_register_p( TXB0SIDH , temp , 4 );  temp[4] = mcp2515_read_register( TXB0CTRL );  temp[5] = mcp2515_read_register( TXB0DLC ); // temp[6] = mcp2515_read_register( RXB1DLC );    while(1)  {   KeyNum = GetKeyNum();        //获取按键值   if ( KeyNum == 0x08 )    {     cli();     //关全局中断 //    for(i = 0; i < 100 ; i++)     {     can_send_message( ID_S, data_S, length_S, flags_S);     delay_x( 0xff );     }    temp_reg = mcp2515_read_register( CANINTF );    USART_Transmit( temp_reg );    temp_reg = mcp2515_read_register( CANSTAT );    USART_Transmit( temp_reg );    temp_reg = mcp2515_read_register( EFLG );    USART_Transmit( temp_reg );    temp_reg = 0xff;    mcp2515_write_register( CANINTF , 0);    mcp2515_write_register( CANSTAT , 0);    mcp2515_write_register( EFLG , 0 );        sei();   //开全局中断    }   else if ( KeyNum == 0x10 )    {    cli();     //关全局中断    putstr_L(data_temp, (receive_num + 1));    USART_Transmit( (u08) ( receive_num >> 3 ) );    temp_reg = mcp2515_read_register( CANINTF );    USART_Transmit( temp_reg );    temp_reg = mcp2515_read_register( CANSTAT );    USART_Transmit( temp_reg );    temp_reg = mcp2515_read_register( EFLG );    USART_Transmit( temp_reg );    temp_reg = 0xff;        mcp2515_write_register( CANINTF , 0);    mcp2515_write_register( CANSTAT , 0);    mcp2515_write_register( EFLG , 0 );        receive_num = 0;    for ( j = 0 ; j <80 ; j++)     {      data_temp[j] = 48 ; // "0"     }    sei();   //开全局中断    } //  can_read_message( &ID_R, data_R, &length_R, &flags_R);    //  DisplayListChar(0, 1, data_R);  }

}

下载地址

下载地址 1

相关产品

发表评论