OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3298|回复: 7

串口的发送接收实验没有语法编译错误 流程检查了几遍也没问题 就是不可以用 代码如下 求大佬指教

[复制链接]

1

主题

11

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2019-4-2
在线时间
10 小时
发表于 2019-4-2 17:30:23 | 显示全部楼层 |阅读模式
#include "sys.h"
#include "delay.h"

u8 rdata[1];

UART_HandleTypeDef USART1_Handler;

void UART_Init(u32 bound)
{

          USART1_Handler.Instance=USART1;
          USART1_Handler.Init.BaudRate=bound;  
    USART1_Handler.Init.WordLength=UART_WORDLENGTH_8B;
          USART1_Handler.Init.Mode=UART_MODE_TX_RX;
    USART1_Handler.Init.StopBits=UART_STOPBITS_1;
          USART1_Handler.Init.Parity=UART_PARITY_NONE;
          USART1_Handler.Init.HwFlowCtl=UART_HWCONTROL_NONE;
       
   
          HAL_UART_Init(&USART1_Handler);
       
}

void HAL_UART_MspInit(UART_HandleTypeDef *huart)
{
        GPIO_InitTypeDef GPIOA_Init;
       
        if(huart->Instance==USART1)
        {
    __HAL_RCC_GPIOA_CLK_ENABLE();
          __HAL_RCC_USART1_CLK_ENABLE();
       
          GPIOA_Init.Pin=GPIO_PIN_9|GPIO_PIN_10;
          GPIOA_Init.Speed=GPIO_SPEED_HIGH;                     
    GPIOA_Init.Mode=GPIO_MODE_AF_PP;
          GPIOA_Init.Alternate=GPIO_AF7_USART1;
          HAL_GPIO_Init(GPIOA,&GPIOA_Init);
               
                HAL_NVIC_EnableIRQ(USART1_IRQn);
           HAL_NVIC_SetPriority(USART1_IRQn,3,3);
        }
}

void USART1_IQRHandler(void)
{
   HAL_UART_RxCpltCallback(&USART1_Handler);
       
}
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
   u8 rec;
         if(huart->Instance==USART1)
         {
           rec=*((huart->pRxBuffPtr)-1);
                 HAL_UART_Transmit(&USART1_Handler,&rec,1,1000);
         }
}       
int main(void)
{
         //u8 tab[] = "asdad";
    Cache_Enable();
    HAL_Init();
    Stm32_Clock_Init(432,25,2,9);
    delay_init(216);
       
          UART_Init(115200);
       
          HAL_UART_Receive_IT(&USART1_Handler,(u8 *)rdata,1);
       
          while(1)
        {
                //HAL_UART_Transmit(&USART1_Handler,tab, sizeof(tab), 100);
                //delay_ms(100);
        }
       
       
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

11

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2019-4-2
在线时间
10 小时
 楼主| 发表于 2019-4-2 17:48:31 | 显示全部楼层
回复 支持 反对

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2019-4-2 18:56:10 | 显示全部楼层
要实现的功能是啥?
回复 支持 反对

使用道具 举报

1

主题

11

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2019-4-2
在线时间
10 小时
 楼主| 发表于 2019-4-2 19:10:00 | 显示全部楼层
void USART1_IQRHandler(void)   里面HAL_UART_RxCpltCallback(&USART1_Handler);  函数用错了已经改过来了
回复 支持 反对

使用道具 举报

1

主题

11

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2019-4-2
在线时间
10 小时
 楼主| 发表于 2019-4-2 19:10:40 | 显示全部楼层
peng1554 发表于 2019-4-2 18:56
要实现的功能是啥?

把串口发送给单片机的数据再反回串口
回复 支持 反对

使用道具 举报

1

主题

11

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2019-4-2
在线时间
10 小时
 楼主| 发表于 2019-4-2 19:11:04 | 显示全部楼层
bowen0 发表于 2019-4-2 19:10
void USART1_IQRHandler(void)   里面HAL_UART_RxCpltCallback(&USART1_Handler);  函数用错了已经改过来 ...

但是改了还是不能用
回复 支持 反对

使用道具 举报

1

主题

11

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2019-4-2
在线时间
10 小时
 楼主| 发表于 2019-4-2 20:49:19 | 显示全部楼层
问题已经找到有一个函数的输入法 打的时候没注意 调整好输入法重新打一遍 就可以了
回复 支持 反对

使用道具 举报

1

主题

11

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2019-4-2
在线时间
10 小时
 楼主| 发表于 2019-4-2 21:22:29 | 显示全部楼层
还有当串口中断开启以后会后面的函数关闭串口中断 所以要重新使能
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 04:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表