完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
//串口中断 void USART1_IRQHandler(void) { portBASE_TYPE TaskWoken = pdFALSE; if (USART_GetiTStatus(USART1, USART_IT_RXNE) == SET) { unsigned char RxChar; unsigned char Event = DEMO_EVENT_UART_RX; RxChar = USART_ReceiveData(USART1); xQueueSendFromISR(UartRx, &RxChar, &TaskWoken); xQueueSendFromISR(Event, &Event, &TaskWoken); } portEND_SWITCHING_ISR(TaskWoken); } 这里发送了两个东西给一个两个队列,一个代表事件,一个是具体的char,这个在这里无关紧要。。 中断优先级的配置如下: NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = configLIBRARY_KERNEL_INTERRUPT_PRIORITY; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init( &NVIC_InitStructure ); 那么我的问题来了,请问一下, 在串口中断里,如果我发送了一个字符串 1234567890, 那么请问是一次性接收完再回到task,还是说task和中断之间也会进行分时操作, 我实在是没办法了, 如果是有个思路可以验证的话。。也请指点一下,不是存心做伸手party的。。。 |
|
相关推荐
1个回答
|
|
那要看你的代码是不是原子操作,想要一次发完要用临界代码。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1330 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1263 浏览 3 评论
2430 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1416 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1847 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-1 05:47 , Processed in 0.549644 second(s), Total 72, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号