完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
LIN 通信时 同步段的 数据 0X55 怎么都收不到数据?怎么解决?
这是初始化程序: void LIN_Init(US usBaud) { SCISR2 &= 0x7f ; // 设置AMAP SCIBD = (US)( (SystemBusClock/16)/usBaud ); //设置SCI波特率 SCICR1 = 0x00; //设置SCI0为正常模式,八位数据位,无奇偶校验 SCICR1 = 0x04; SCICR2 = 0x2c; //允许接收和发送数据,允许接收中断功能 SCICR1|=(1<<2); SCISR2 |=(1<<2); //设置BRK13 13位间隔符 } 这是接收函数: UC LIN_GetChar(LIN_Frame *Frame_Receive) { static UC ch; // LIN接收通道状态 switch(Frame_Receive->State) { case IDLE: if(!( SCISR1&0x22) ) return(FALSE); if(SCIDRL) return(FALSE); break; case _BREAK: if(!(SCISR1_RDRF)) return(FALSE); if(SCIDRL!=0x55); return(FALSE); /* 程序 一直 死在这里 , 一直收不到 0X55 的数据 */ break; case SYNCH: /* 获取 ID */ if(!(SCISR1_RDRF)) return(FALSE); ch = SCIDRL; Frame_Receive->PID = ch; break; case PROTECTED_IDENTIFIER: case DATA0: case DATA1: case DATA2: case DATA3: case DATA4: case DATA5: case DATA6: if(!(SCISR1_RDRF)) return(FALSE); ch = SCIDRL; Frame_Receive->Data[Frame_Receive->State-PROTECTED_IDENTIFIER] = ch; break; case DATA7: if(!(SCISR1_RDRF)) return(FALSE); ch = SCIDRL; Frame_Receive->Check = ch; break; case CHECKSUM: return(FALSE); } Frame_Receive->State+=1; return(TRUE); } |
|
相关推荐
4个回答
|
|
已经解决
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1912个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36362 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4401 浏览 0 评论
6055 浏览 1 评论
6768 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4218 浏览 0 评论
620浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
618浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
610浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
696浏览 2评论
799浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 19:53 , Processed in 1.010961 second(s), Total 86, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号