新手上路
- 积分
- 32
- 金钱
- 32
- 注册时间
- 2019-7-8
- 在线时间
- 7 小时
|
2金钱
本帖最后由 zhanghongkun 于 2019-8-31 00:11 编辑
这边模仿探索者的例子 写了 UART4的中断,中断一切都正常,当我从上位机通过串口发送一个字符或者几个字符到STM32F407后能进入中断。但素........问题来了,比如说我发送一个字符"A"到STM32F407,然后进入中断服务程序,紧接着判断 USART_GetITStatus(UART4, USART_IT_RXNE) ,但是判断结果始终为 RESET.....我接着跟踪进入 USART_GetITStatus 函数里看看,发现 明明 USART->DR 中有数据为 "A"的ASIIC 码
但是就是执行到
- if ((itmask != (uint16_t)RESET)&&(bitpos != (uint16_t)RESET))
- {
- bitstatus = SET;
- }
- else
- {
- bitstatus = RESET;
- }
-
- return bitstatus;
复制代码
直接判断为 RESET,其中 itmark = 0x0000202C;bitpos = 0x00000020,都不等于 RESET 定义的 0x00
然后接直接 判断失败 推出了。请问各位大神 你们遇到过没有
金钱不够 只有两个啊...
|
最佳答案
查看完整内容[请看2#楼]
试下在这个6个串口的工程 测试下 可能是的配置问题:http://www.openedv.com/forum.php?mod=viewthread&tid=282609&extra=
|