设置代码: void UART1_InitCon() { UART1_DeInit(); UART1_Init((u32)9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_RX_ENABLE); UART1_Cmd(ENABLE); UART1_ITConfig(UART1_IT_RXNE_OR, ENABLE); } 中断接收数据的代码: INTERRUPT_HANDLER(UART1_RX_IRQHandler, 18) { ColorData = UART1_ReceiveData8(); RData = UART1_ReceiveData8(); GData = UART1_ReceiveData8(); BData = UART1_ReceiveData8(); ModeData = UART1_ReceiveData8(); return; /* In order to detect unexpected events during development, it is recommended to set a breakpoint on the following instruction. */ } 现在是我上位机发了5个数据 入0x01 0x00 0x00 0x00 0x01 然后我Debug模式下看到的变量 ColorData、RData 、GData 、BData 、ModeData数据全部都是0x01 如果发送的是 0x01 0x00 0x00 0x00 0x02,则变量 ColorData、RData 、GData 、BData 、ModeData数据全部都是0x02 小弟初出茅庐,还请大神指教 |
STMS005K6T6 如何采集内部参考电压。
stm8s003 adc中断和通道切换的问题
adc施密特触发器stm8
stm8l051f3 TSSOP20 封装,待机模式下,2天后,电流突然增加到140UA
STM8S用STVP烧录怎么加密?
如何使用ST官网例程_LIN总线通讯_STM8AF
STM8 LIN
IAR代码编辑太费劲了,想问一下有没有好的方法,试了VScode但是头文件老是报错,调了很久也没调好,想换个方法了。
想问一下各位大佬,IAR下载调试代码时出现 warning: is an illegal data sample expression IAR是什么意思啊?
STM8S标准库TIM1编码器功能不计数,请大师帮我看看
评分
查看全部评分
官方例程可参考,接收数据在缓冲 aRxBuffer[RxCounter++]中:
usart每次中断读入1个字节数据,楼主在一次中断中赋值那么多组数据当然出错了。ST官方代码用数组指针xCounter++是很巧妙的思路。
评分
查看全部评分
中断接收数据的代码:
INTERRUPT_HANDLER(UART1_RX_IRQHandler, 18)
{
ColorData = UART1_ReceiveData8();
RData = UART1_ReceiveData8();
GData = UART1_ReceiveData8();
BData = UART1_ReceiveData8();
ModeData = UART1_ReceiveData8();
return;
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
}
_______________________________________________
你这程序不对呀,一次中断,只能接收一个数据,接收完必须中断返回的。
请参考楼上的答案,串口带FIFO的结构就是楼上的程序,大家都是这么用的。
评分
查看全部评分
非常感谢!
非常感谢!
非常感谢!