新唐mcu can接收 可以不用先指定id吗

新唐mcu can接收 可以不用先指定id吗,第1张

节点ID设置可以属于CAN应用层协议内容,而应用协议可以自行定义。一、从节点的ID如果要和MCU“不相关”,可以又多种方式实现,ID事先装入EEPROM,或者用硬件的拨码开关来指示。如果逻辑上复杂一些,可以做到ID自动分配,自动识别。二、“如从主节点向从节点下载程序”——可以主节点同时向多个从节点发送数据(广播),也可以指向特定的ID发送(单个问答式)。实际上主节点的数据发到总线上了,所有从节点都可以接收到的,至于如何接收可以两种方式:1、每个节点都把数据收入缓冲区,软件判断不属于自己节点的就丢弃不处理。2、硬件设置CAN滤波,不属于自己节点的数据就不会收入缓冲区,节点处于空闲状态,只有属于自己的特定ID才会收进来。

正在用W78E58B,仿真器不够,用编程器拔来插去的很烦,据说其支持ISP,就准备试试,顺便也试了试W77E516的ISP。首先上网搜了一下其他人的经验,下面是我经过实验成功的步骤:

1、用编程器将LDU40910BIN写入W78E58B的LDROM(地址8000H-8FFFH)。我用的SUOERPROL580U只需要在装载代码的时候指定起始地址为8000H即可。

2、将P26、P27都接地,当然单片机系统的串口要先调通。

3、上电复位后,启动8051IspWriterexe,点击Select Chip设置为W78E58B,点击Select File载入目标代码,设置串口号,点击ConNet,软件与单片机通讯成功后,原来灰色的Porgram All按钮即可用,点击它开始ISP下载。

4、释放P26、P27,上电复位后,单片机即可正常运行。

W77E516的ISP和上面稍有不同:

1、将LDU40910BIN写入W77E516的LDROM(地址10000H-10FFFH)。此外还要使能H/W配置位。

2、后面步骤同上,不过W77E516似乎在下载成功后即开始正常运行,无需复位

W78E052DDG的引脚与AT89S52-DIP40,是完全兼容的,是可以直接替换的。

W78E052DDG的引脚图

不过,现在AT89S52烧录程序是很麻烦的,需要USB转ISP烧录线,不好买。

要替换,不如用STC89C52,用USB转串口线或USB转TTL模块烧录程序,这两种线,网上可以买到,非常好买。也完全是兼容的。

请问:Winbond w78E065A40PL 怎样写程序进去?答:在线写要保证芯片内部有版本对应的引导程序否则在线写不了的,W78E65分APROM和LDROM两个区,APROM是64K,LDROM是4K,如果用西尔特离线写入,直接写APROM即可,如果要在线写入,先要确定LDROM里面有引导程序,这个引导程序可以用西尔特写入。然后由对应版本的WINBOND上位机软件,通过串口TTL在线写入APROM。809F现在只能在线写入APROM 。LDROM必须离线写入,而在线写入APROM,必须保证LDROM里面已经有合适的引导程序。WINBOND的MCU就是这么怪的,W78/W79都是出厂没有写好LDROM,ARM内核的已经改了。华邦/新唐的ARM内核的出厂写好引导程序了。请问:用座子写,如何让W78E65和上位机软件连接?答:如果原机就是W78E65里面是有引导程序的,不过分版本的,上位机软件要区分,如果你买新的芯片,必须预先写入引导程序。这个引导程序我06年那会从冠捷程序里面分离出来过。至少3个版本的。常见的是两个版本。引导程序版本为20030919,这个最常用。你可以买W78E65的空片回来,然后用西尔特把这个文件写入进去,就可以用任何一种串口TTL工具配合华邦软件在线写入了。

cortex-M0只是个核,你要知道你用的什么型号的芯片比如ST公司的STM32F0XX,一般Keil MDK-ARM,你玩51用的是KEIL C51,你去下个KEIL MDK,都属于在一个KEIL里,建工程的时候选择相应的芯片型号就行了,不过一般都是用官方给的固件库来开发比较快,不用总算寄存器的值了。去找个M0的论坛吧,我之前一种玩M3内核的STM32F1XX,这几天比赛完了就打算玩玩M0,新唐最近出了一个专门用于音乐播放的M0,希望我的回答能对你有帮助。

我用的新唐芯片,8051内核,跟51差不多,望采纳

void UART_Initial (void)

{

P02_Quasi_Mode; //Setting UART pin as Quasi mode for transmit

P16_Quasi_Mode; //Setting UART pin as Quasi mode for transmit

SCON_1 = 0x50; //UART1 Mode1,REN_1=1,TI_1=1

T3CON = 0x08; //T3PS2=0,T3PS1=0,T3PS0=0(Prescale=1), UART1 in MODE 1

clr_BRCK;

RH3 = HIBYTE(65536 - (1000000/u32Baudrate)-1); /16 MHz /

RL3 = LOBYTE(65536 - (1000000/u32Baudrate)-1); /16 MHz /

set_TR3; //Trigger Timer3

}

以上是初始化的

void Send_Data_To_UART1(UINT8 c)

{

TI_1 = 0;

SBUF_1 = c;

while(TI_1==0);

}

这个是发送

void UART_isr (void) interrupt 4 //串行中断服务程序

{

if (RI_1==1)

{ / if reception occur /

clr_RI_1; / clear reception flag for next reception /

Receive_Date[c] = SBUF_1;

if (Receive_Date[0] == First_Date)

{

c++;

}

else if(Receive_Date_Size > 0 && Receive_Date_Size < 4)

{

c++;

}

else if(Receive_Date[c] == Last_Date && Receive_Date_Size ==4)

{

c = 0;

Flag_Receive_One = 1;

}

else

{

c = 0;

}

}

}

接收

以上就是关于新唐mcu can接收 可以不用先指定id吗全部的内容,包括:新唐mcu can接收 可以不用先指定id吗、华邦单片机W78E58B 怎么烧写程序、新唐单片机 W78E052DDG可以替换AT89S52吗DIP40封装等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10630475.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存