完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近我在做STM32f103串口接收英文单词,u***发送英文字符到电脑,一开始很奇怪每次英文单词只能发送第一个字母,我无意间在串口中断服务程序加了句延时,就可以发送每个单词的前两个字母,我怀疑和中断嵌套有关,就是
while(USB_SIL_Write(EP2_IN, keyboardbuff, 8)!=0) ; SetEPTxValid(ENDP2); 这两句代码也和u***中断有关,可是我无论怎么改代码,总是只能发前两个字母,请大家给点建议,谢谢了. void USART1_IRQHandler(void) { u8 Res=0;uint8_t keyboardbuff[8]={0,0,0,0,0,0,0,0}; if(USART_GetiTStatus(USART1, USART_IT_RXNE) != RESET) { Res=USART1->DR; if(Res>=97&&Res<=122) Res=Res-93;//这个位置是因为ascii和u*** hid编码不一样 else if(Res>=65&&Res<=90) Res=Res-61; else if(Res>=49&&Res<=57) Res=Res-19; else if(Res==48) Res=39; else if(Res==46) Res=55; else return; keyboardbuff[2]=Res; while(USB_SIL_Write(EP2_IN, keyboardbuff, 8)!=0) ;//u***发送字母怀疑中断某个位置出了问题 SetEPTxValid(ENDP2); delay_ms(200); //我无意间加了句延时可以正常发送前两个字母 printf("%u",Res); } } |
|
相关推荐
1个回答
|
|
厉害,楼主加油,我们都看好你哦
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2272 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2083 浏览 3 评论
4708 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2229 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2773 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 17:08 , Processed in 0.617812 second(s), Total 71, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号