非常感谢你的回复
现在中断优先级是这样设定的
#define configKERNEL_INTERRUPT_PRIORITY 255
#define configMAX_SYSCALL_INTERRUPT_PRIORITY 191 /* equivalent to 0xb0, or priority 11. */
VK3366中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
不被硬件中断,可能没有表述清楚,是这样的,在执行下边这个函数时,不想被VK3366的接收中断,因为在中断中也会操控VK3366的寄存器,也就是说有没有什么方法使得下边的函数时一个原子操作
void UART_SendData( uint16_t UARTx, uint16_t data )
{
uint16_t ch, data1, addr;
/* Check the parameters */
assert_param(IS_UART_ALL_PERIPH(UARTx));
ch = UARTx;
addr = SFDR << 9;
data1 = 0x8000 | ch | addr | data ;
SPI_VK3366_CS_LOW();//ê1?üVK3224μ?SPI1|?ü
SPI_Send_Data( data1 );
SPI_VK3366_CS_HIGH();
}
非常感谢你的回复
现在中断优先级是这样设定的
#define configKERNEL_INTERRUPT_PRIORITY 255
#define configMAX_SYSCALL_INTERRUPT_PRIORITY 191 /* equivalent to 0xb0, or priority 11. */
VK3366中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
不被硬件中断,可能没有表述清楚,是这样的,在执行下边这个函数时,不想被VK3366的接收中断,因为在中断中也会操控VK3366的寄存器,也就是说有没有什么方法使得下边的函数时一个原子操作
void UART_SendData( uint16_t UARTx, uint16_t data )
{
uint16_t ch, data1, addr;
/* Check the parameters */
assert_param(IS_UART_ALL_PERIPH(UARTx));
ch = UARTx;
addr = SFDR << 9;
data1 = 0x8000 | ch | addr | data ;
SPI_VK3366_CS_LOW();//ê1?üVK3224μ?SPI1|?ü
SPI_Send_Data( data1 );
SPI_VK3366_CS_HIGH();
}
举报