|
设置代码: 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 小弟初出茅庐,还请大神指教 |
STM8S103飞线外接芯片,I2C不能得到slaveAddress应答,通讯失败。
测试标签123
IAR FOR ARM和IAR FOR STM8无法共存,
STM8L052,液晶内部电源怎么用?
STM8S105C6T6 UART2串口,能接收数据,不能发送数据
STM8S105K4 串口2 无奇偶校验,也能接收 偶校验的 数据
在STM8S的IAP使用中断和APP使用中断问题
STM8L151 SMBUS设计
STM8S103F复位异常
STM8L的LCD调试时不亮
微信公众号
手机版
评分
查看全部评分
官方例程可参考,接收数据在缓冲 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的结构就是楼上的程序,大家都是这么用的。
评分
查看全部评分
非常感谢!
非常感谢!
非常感谢!