完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
CAN静态驱动程序为CAN消息生成缓冲区:静态CAN_TX_MSG_BUFFER can_message_buffer0[<._number>*
|
|
相关推荐
7个回答
|
|
谢谢,我将作为bug报告来查看并输入。
|
|
|
|
也请检查我之前关于从CAN总线读取的帖子:CAN静态驱动程序协调1.06.02-DRV_CAN0_ChannelMessageReceive不能正常工作
|
|
|
|
从使用缓冲区的函数调用的注释:/*将缓冲区分配给CAN模块。在这种情况下,为两个通道分配足够的内存,每个通道具有8个消息缓冲区。*/PLIB_CAN_MemoryBufferAs.(CAN_ID_1,can_message_buffer0);虽然大小相当大,但它确实通过了“最小”测试。你可以减少它,因为你指出,因为它更大(2×2×16)。比最小值(2×8)(如评论所说)。
|
|
|
|
我把这个职位转交给负责工程师。谢谢你指出了这一点。
|
|
|
|
CAN消息缓冲区的问题是:静态CAN_TX_MSG_BUFFER can_message_buffer0[<._number>*
|
|
|
|
这是来自数据表·CAN发送消息缓冲区需要4个字(16字节)的存储器·CAN接收消息缓冲区将需要4个字(16字节)的存储器,如果整个消息(时间戳加上数据加上消息ID)被存储-(全接收消息)·CAN接收消息缓冲区r仅当数据被存储时才需要2个字(8个字节)的内存(数据只接收消息),因为如果您通过Harmony Configurator定义通道的大小,在我的例子中,具有FIFO大小2消息的2个通道中,您需要的内存是:2×2×16字节。ICCAN_TX_MSG_BUFFER can_message_buffer0[2*2*16];=2×2×16x sizeof(CAN_TX_MSG_BUFFER)=2×2×2×16/*将缓冲区分配给CAN模块。在这种情况下,为两个通道分配足够的内存,每个通道有两个消息缓冲区。*/PLIB_CAN_MemoryBufferAs.(CAN_ID_1,can_message_buffer0)应该更有意义。))#if>can_message_.${DRV_INSTANCE}[${DRV_CAN_CHANNELS_NUMBER}*2*16];您可以将MHC中的通道缓冲区大小设置为所需的任何大小——在生成ftl代码中不使用它。因此,如果将其设置为两个通道的最大值32,则保留的内存将太小!应该是:can_message_.${DRV_INSTANCE}[${DRV_CAN_CHANNELS_NUMBER}*({DRV_CAN_CHANNELS._ID1}+{DRV_CAN_CHANNELS._ID2}+...)];看起来很奇怪!
|
|
|
|
我相信* 16是用于消息“缓冲区”:不止一条消息。请参阅PLIPK-CANEnMeMyBuffeRead(
|
|
|
|
只有小组成员才能发言,加入小组>>
5248 浏览 9 评论
2036 浏览 8 评论
1956 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3217 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2264 浏览 5 评论
782浏览 1评论
676浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
602浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
684浏览 0评论
581浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 13:11 , Processed in 1.411864 second(s), Total 60, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号