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