interrupt [USART_RXC] void usart_rx_isr(void) //USART串行接收中断
{
Re_buf[counter]=SBUF;//Re_buf[counter]=UDR;
if(counter==0&&Re_buf[0]!=0x55) return; //第0号数据不是帧头
counter++;
if(counter==11) //接收到11个数据
{
counter=0; //重新赋值,准备下一帧数据的接收
sign=1;
}
}
这段程序应该是对STM32的编程语句,我看到您的回答,知道[USART_RXC]是中断向量,那么我想问下,如果我要把这段程序改成C51的,除了将SBUF加进去,这个中断向量该如何修改?? 能不能加QQ向您学习下?? 我QQ:512419912
void main()
{
USART_INIT();
// #asm("sei")
while(1)
{
if(sign)
{
sign=0;
if(Re_buf[0]==0x55) //检查帧头
{
switch(Re_buf [1])
{
case 0x53:
angle[0] = (short(Re_buf [3]<<8| Re_buf [2]))/32768.0*180;
angle[1] = (short(Re_buf [5]<<8| Re_buf [4]))/32768.0*180;
angle[2] = (short(Re_buf [7]<<8| Re_buf [6]))/32768.0*180;
T = (short(Re_buf [9]<<8| Re_buf [8]))/340.0+36.25;
break;
解释下,main函数中,a[0]、w[0]、angle[0]分别代表x轴的加速度、角速度和角度,我把那个模块发送的数据给你上图,你可以看下~~
ä½æ¯æ¹æäº
void usart_rx_isr(void) inttrupt 4 using1
ä¹åï¼ä¸»å½æ°ä¸çRe_bufåæè¯æ³é误...å¾æ å¥åT_T ä¸ç¥éåªéåºäºé®é¢
å¨51ä¸ï¼è¿å»ä¸²å£ä¸æç¨åºåä¸è¬å è¦å°ä¸²å£ä¸æå ³éï¼åå»æ§è¡ä¸æå¤çï¼ä¹åæ¸ é¤ä¸ææ å¿ä½ï¼æåå次æå¼ä¸²å£ä¸æï¼ä»¥ä¸è¿äºé½éè¦å¨ä¸æå½æ°éæ
è¿ä¸ç解çè¯å¯ä»¥åè书æ¬ä¸ç串å£ä¸æçä¾å
è¿æï¼æä¸ç¥éä½ ç主å½æ°æ¯ä»ä¹ï¼ä¹æ²¡åæ³å¸®ä½ åæï¼ä½ ä¸ä¸»å½æ°å§ï¼è½ç¶æä¹æ¯æ°æï¼ä½æ¯æ¿æå¸®ä½ åæï¼å ±åè¿æ¥
追é®è°¢è°¢ä½ å¦~ ä¹åææåç»ä½ æï¼æ们è½å 个QQ好ååï¼O(â©_â©)O~
æ¯è¿æ ·çï¼æé®é¢è¯´æ¸ æ¥å§ï¼ææä¸ä¸ªæ¨¡åéè¿ä¸²å£è¾åºæ°æ®ï¼ä¸ä¸ªæ°æ®å å å«11ä½ï¼å«æå 头ãå å°¾ï¼ï¼ææ³ç¨åçæºæ¥æ¶è¿ä¸ªæ°æ®ï¼æ以è¿éçä¸æå½æ°ï¼è¦æ£æµå 头ï¼ææä¸æä¹ç±»æ¯è¾éº»ç¦ï¼ææçç¨åºææ¾å¨é®é¢è¡¥å 离å§~~
å 好åå½ç¶æ²¡é®é¢ï¼ä¸è¿æä¹ç®æ°æå¦1025195650
ä½ é½ä¼stm32äºï¼æä¹ä¸ä¼51ï¼