Cotex-M3 LM9S92 CAN总线发送数据

芯片为LM3S9B92,使用PB4和PB5作为CAN0RX和CAN0TX。

下面是一个一直发送的例子:

//This is demo for lm3s9b92
//Created by Robin
//2012-02-05
//CAN发送数据例子
//使用PB4和PB5作为CAN0RX和CAN0TX

#include "hw_memmap.h"
#include "hw_types.h"
#include "hw_can.h"
#include "hw_ints.h"
#include "can.h"
#include "interrupt.h"
#include "sysctl.h"
#include "gpio.h"


tCANBitClkParms CANBitClk;
tCANMsgObject sMsgObjectRx;
tCANMsgObject sMsgObjectTx;
unsigned char ucBufferIn[8];
unsigned char ucBufferOut[8]={0,2,3,4,5,6,7,8};


//延时函数
void delay()
{
	unsigned long ulLoop;
	for(ulLoop = 0; ulLoop < 4000000; ulLoop++)
	{
	}
}

//发送
void send()
{
	sMsgObjectTx.ulMsgID = 0x7ff;
	sMsgObjectTx.ulFlags = 0;
	sMsgObjectTx.ulMsgLen = 1;
	sMsgObjectTx.pucMsgData = ucBufferOut;
	//发送
	CANMessageSet(CAN0_BASE, 1, &sMsgObjectTx, MSG_OBJ_TYPE_TX);
}

int main()
{
	//系统初始化
	SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);

	//使能端口B
	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);

	//PB4和PB5用作CAN
	GPIOPinConfigure(GPIO_PB4_CAN0RX);
	GPIOPinConfigure(GPIO_PB5_CAN0TX);

	//PB4 PB5作为CAN引脚
	GPIOPinTypeCAN(GPIO_PORTB_BASE, GPIO_PIN_4 | GPIO_PIN_5);

	//使能外设CAN0
	SysCtlPeripheralEnable(SYSCTL_PERIPH_CAN0);

	//初始化CAN0
	CANInit(CAN0_BASE);
	//设置通信速率125kbps
	CANBitRateSet(CAN0_BASE, SysCtlClockGet(), 125000);
	//使能CAN0
	CANEnable(CAN0_BASE);

	for(;;){
        send();
        delay();
		++ucBufferOut[0];
	}
}



引脚配置的这两个很重要,但是很多地方的源代码都没提到。。。。
GPIOPinConfigure(GPIO_PB4_CAN0RX);
GPIOPinConfigure(GPIO_PB5_CAN0TX);



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RobinTang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值