打印
[STM32F1]

感觉是没进入中断

[复制链接]
776|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liuzaiy|  楼主 | 2022-7-8 22:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//初始化配置
void RS485_Init(void)  
{   

              USART_InitTypeDef USART_InitStructure;
        GPIO_InitTypeDef GPIO_InitStructure;
              NVIC_InitTypeDef NVIC_InitStructure;   

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);//ʹÄÜGPIOA/USARTʱÖÓ
                    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//¹¦Äܸ´ÓÃIOʱÖÓʹÄÜ
        USART_Cmd(USART1, ENABLE);//ʹÄÜUSART

        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;           //RX½ÓÊÕÒý½Å
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;   //¸¡¿ÕÊäÈë
        GPIO_Init(GPIOA,&GPIO_InitStructure);        //ÅäÖÃ IO

                    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;           //TX·¢ËÍÒý½Å
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //¸´ÓÃÍÆÍìÊä³ö
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;        //Êä³öËÙ¶È
        GPIO_Init(GPIOA,&GPIO_InitStructure);        //ÅäÖÃ IO



                    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;             //485¿ØÖÆÒý½Å
              GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   //ÍÆÍìÊä³ö
               GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        
              GPIO_Init(GPIOA, &GPIO_InitStructure);
                                GPIO_ResetBits(GPIOA, GPIO_Pin_8);//ĬÈϽÓÊÕģʽ
                                


        USART_ClearFlag(USART1,USART_FLAG_TC);//Çå³ý´®¿Ú´¦Àí±ê־λ
                                USART_ClearITPendingBit(USART1, USART_IT_RXNE);//Çå³ý´®¿ÚÖжϱê־λ
        USART_StructInit(&USART_InitStructure);
                    USART_Init(USART1,&USART_InitStructure);
               USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);        //ÖжÏʹÄÜ


        NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;     
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority =1;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);


           
}  
//中断接收
void USART1_IRQHandler(void)     
{
        u8 RX_dat;
  
  if(USART_GetITStatus(USART1,USART_IT_RXNE)==SET)//USART_IT_RXNE:????
  {
    RX_dat=USART_ReceiveData(USART1);   
    GPIO_SetBits(GPIOA,GPIO_Pin_8);
    delay_ms(1);
    USART_SendData(USART1,RX_dat);   
    while(USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET){} //???????????
    delay_ms(2);
    GPIO_ResetBits(GPIOA,GPIO_Pin_8);
  }   

如题 我之前用串口助手测试232通信 这个测试程序通过了  但换成485通信时(相同串口,只是多了一个控制引脚),程序就实现不了了

使用特权

评论回复
沙发
jiajs| | 2022-7-8 22:53 | 只看该作者
多看看例程吧,不要在中断里面等待和延时。

使用特权

评论回复
板凳
dingy| | 2022-7-8 22:55 | 只看该作者
在接收数据超时或按协议接收完成后,再发送数据。

使用特权

评论回复
地板
renyaq| | 2022-7-8 22:58 | 只看该作者
亲 程序流程有问题

使用特权

评论回复
5
juventus9554| | 2022-7-9 09:52 | 只看该作者
哪有在中断里使用while的啊

使用特权

评论回复
6
llljh| | 2022-7-9 09:55 | 只看该作者

这是我在网上找的 因为我之前的那个不行
我原来的中断是void USART1_IRQHandler(void)     
{

  if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
  {
  
        USART_ClearITPendingBit(USART1, USART_IT_RXNE);
        USART1_Buffer[uart_p]=USART_ReceiveData(USART1);
        uart_p++;
  }        

}
接收完后再发送的数据

使用特权

评论回复
7
heweibig| | 2022-7-9 10:04 | 只看该作者
你是直接把232当485来使用,不用加485的芯片吗?

使用特权

评论回复
8
wyjie| | 2022-7-9 10:11 | 只看该作者
是不是有多个中断,看中断组的配置是否合理

使用特权

评论回复
9
chuxh| | 2022-7-9 10:14 | 只看该作者
之前遇到的问题好像是中断配置的有问题

使用特权

评论回复
10
llljh| | 2022-7-9 10:18 | 只看该作者
还有就是串口中断函数里放了串口打印函数

使用特权

评论回复
11
supernan| | 2022-7-9 10:21 | 只看该作者
中断不要延时啊,,,,,

使用特权

评论回复
12
liuzaiy|  楼主 | 2022-7-9 10:28 | 只看该作者
哦,那我就知道怎么回事了,多谢大家

使用特权

评论回复
13
tpgf| | 2022-8-3 08:59 | 只看该作者
打断点调试看看

使用特权

评论回复
14
keaibukelian| | 2022-8-3 16:30 | 只看该作者
中断里边不要加延时

使用特权

评论回复
15
labasi| | 2022-8-3 16:44 | 只看该作者
能够进入调试模式吗

使用特权

评论回复
16
paotangsan| | 2022-8-3 16:58 | 只看该作者
引脚进行初始化了吗

使用特权

评论回复
17
renzheshengui| | 2022-8-3 17:09 | 只看该作者
开启中断使能了没有呀

使用特权

评论回复
18
wakayi| | 2022-8-3 17:22 | 只看该作者
楼主本身的中断函数就有问题

使用特权

评论回复
19
SantaBunny| | 2023-3-1 11:02 | 只看该作者
要记住所有外设都有对应时钟,你只开了GPIO的时钟外设是没法工作的

使用特权

评论回复
20
AloneKaven| | 2023-3-1 20:51 | 只看该作者
中断配置的问题吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

735

主题

7546

帖子

2

粉丝