首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32之CAN---发送管理分析(3)

STM32之CAN---发送管理分析(3)

各定义如下:
位31LOW2: 邮箱2最低优先级标志
当由多个邮箱在等待发送报文,且邮箱2的优先级最低时,硬件对该位置1。
位30LOW1: 邮箱1最低优先级标志
当由多个邮箱在等待发送报文,且邮箱1的优先级最低时,硬件对该位置1。
位29LOW0: 邮箱0最低优先级标志
当由多个邮箱在等待发送报文,且邮箱0的优先级最低时,硬件对该位置1。
位28TME2: 发送邮箱2空
当邮箱2中没有等待发送的报文时,硬件对该位置1。
位27TME1: 发送邮箱1空
当邮箱1中没有等待发送的报文时,硬件对该位置1。
位26TME0: 发送邮箱0空
当邮箱0中没有等待发送的报文时,硬件对该位置1。
位25:24CODE[1:0]: 邮箱号
当有至少1个发送邮箱为空时,邮箱号为下一个空的发送邮箱号。
当所有的发送邮箱都为空时,邮箱号为优先级最低的那个发送邮箱号。
位23ABRQ2: 邮箱2中止发送
软件对该位置1可以中止邮箱2的发送请求,当邮箱2的发送报文被清除时硬件对该位清0。
如果邮箱2中没有等待发送的报文,则对该位置1没有任何效果。
位22:20保留位,硬件强制其值为0
位19TERR2: 邮箱2发送失败
当邮箱2因为出错而导致发送失败时,对该位置1。
位18ALST2: 邮箱2仲裁丢失
当邮箱2因为仲裁丢失而导致发送失败时,对该位置1。
位17TXOK2: 邮箱2发送成功
每次在邮箱2进行发送尝试后,硬件对该位进行更新:
0: 上次发送尝试失败;
1: 上次发送尝试成功。
当邮箱2的发送请求被成功完成后,硬件对该位置1。
位16RQCP2: 邮箱2请求完成
当上次对邮箱2的请求(发送或中止)完成后,硬件对该位置1。
软件对该位写’1’可以对其清0;当硬件接收到发送请求时也对该位清0(CAN_TI2R 寄存器的TXRQ位被置1)。
该位被清0时,邮箱2的其它发送状态位(TXOK2, ALST2和TERR2)也被清0。
位15ABRQ1: 邮箱1中止(发送)
软件对该位置1可以中止邮箱1的发送请求,当邮箱1的发送报文被清除时硬件对该位清0。
如果邮箱1中没有等待发送的报文,则对该位置1没有任何效果。
位14:12保留位,硬件强制其值为0
位11TERR1: 邮箱1发送失败
当邮箱1因为出错而导致发送失败时,对该位置1。
位10ALST1: 邮箱1仲裁丢失
当邮箱1因为仲裁丢失而导致发送失败时,对该位置1。
位9TXOK1: 邮箱1发送成功
每次在邮箱1进行发送尝试后,硬件对该位进行更新:
0: 上次发送尝试失败;
1: 上次发送尝试成功。
当邮箱1的发送请求被成功完成后,硬件对该位置1。
位8RQCP1: 邮箱1请求完成
当上次对邮箱1的请求(发送或中止)完成后,硬件对该位置1。
软件对该位写’1’可以对其清0;当硬件接收到发送请求时也对该位清0(CAN_TI1R 寄存器的TXRQ位被置1)。
该位被清0时,邮箱1的其它发送状态位(TXOK1, ALST1和TERR1)也被清0。
位7ABRQ0: 邮箱0中止(发送)
软件对该位置1可以中止邮箱0的发送请求,当邮箱0的发送报文被清除时硬件对该位清0。
如果邮箱0中没有等待发送的报文,则对该位置1没有任何效果。
位6:4保留位,硬件强制其值为0
位3TERR0: 邮箱0发送失败
当邮箱0因为出错而导致发送失败时,对该位置1。
位2ALST0: 邮箱0仲裁丢失
当邮箱0因为仲裁丢失而导致发送失败时,对该位置1。
位1TXOK0: 邮箱0发送成功
每次在邮箱0进行发送尝试后,硬件对该位进行更新:
0: 上次发送尝试失败;
1: 上次发送尝试成功。
当邮箱0的发送请求被成功完成后,硬件对该位置1。
位0RQCP1: 邮箱0请求完成
当上次对邮箱0的请求(发送或中止)完成后,硬件对该位置1。
软件对该位写’1’可以对其清0;当硬件接收到发送请求时也对该位清0(CAN_TI0R 寄存器的TXRQ位被置1)。
该位被清0时,邮箱0的其它发送状态位(TXOK0, ALST0和TERR0)也被清0。
这里值得注意的是位25~24,即下一个空的发送邮箱号。当所有的发送邮箱都为空时,邮箱号为优先级最低的那个发送邮箱号。通过此两位,STM32就知道下一条发送报文该存储到哪个邮箱了。
继承事业,薪火相传
返回列表