OpenEdv-开源电子网

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

STM32L052C8芯片串口接收问题

[复制链接]

11

主题

73

帖子

0

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2016-10-8
在线时间
123 小时
发表于 2017-5-31 21:24:45 | 显示全部楼层 |阅读模式
1金钱
调试了2天,串口接收怎么都调不通,头大,求大神帮忙。还有顺便问一下这个芯片的系统时钟怎么看,不知道怎么跳定时器的分频那些。代码贴到下面
void Usart_Camera_Init(void)  
{   
  GPIO_InitTypeDef  GPIO_InitStruct;  

  /*##-1- Enable peripherals and GPIO Clocks #################################*/  
  /* Enable GPIO TX/RX clock */  
  __HAL_RCC_GPIOA_CLK_ENABLE();
  /* Enable USART1 clock */  
  __HAL_RCC_USART1_CLK_ENABLE();   

  /*##-2- Configure peripheral GPIO ##########################################*/   
  /* UART TX GPIO pin configuration  */  
  GPIO_InitStruct.Pin       = GPIO_PIN_9;  
  GPIO_InitStruct.Mode      = GPIO_MODE_AF_PP;  
  GPIO_InitStruct.Pull      = GPIO_PULLUP;  
  GPIO_InitStruct.Speed     = GPIO_SPEED_FAST;  
  GPIO_InitStruct.Alternate = GPIO_AF4_USART1;  

   HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);  

  /* UART RX GPIO pin configuration  */  
   GPIO_InitStruct.Pin = GPIO_PIN_10;  
   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
         GPIO_InitStruct.Pull = GPIO_PULLUP ;
         GPIO_InitStruct.Alternate = GPIO_AF4_USART1;
         HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

                HAL_USART_DeInit(&USART1_HandleStructure);
          USART1_HandleStructure.Instance = USART1;               
          USART1_HandleStructure.Init.BaudRate = 115200;                //2¨ìØÂê
          USART1_HandleStructure.Init.WordLength = USART_WORDLENGTH_8B;        //×Ö3¤8λ
          USART1_HandleStructure.Init.StopBits = USART_STOPBITS_1;                //ò»¸öí£Ö1λ
          USART1_HandleStructure.Init.Parity = USART_PARITY_NONE;                //ÎTÆæÅ¼D£Ñé
          USART1_HandleStructure.Init.Mode        = USART_MODE_TX_RX;                //êÕ·¢Ä£ê½     
                HAL_USART_Init(&USART1_HandleStructure);
                __HAL_USART_ENABLE(&USART1_HandleStructure);
  /*##-3- Configure the NVIC for UART ########################################*/  
  /* NVIC for USART1 */  
  HAL_NVIC_SetPriority(USART1_IRQn, 0, 1);  
  HAL_NVIC_EnableIRQ(USART1_IRQn);  
        __HAL_USART_ENABLE_IT(&USART1_HandleStructure, USART_IT_RXNE);
        //__HAL_USART_ENABLE_IT(&USART1_HandleStructure, USART_IT_TC);
        //HAL_USART_Receive_IT(&USART1_HandleStructure, (u32)Usart1_Rxbuffer, 1);
       
}


void USART1_IRQHandler(void)
{
        u8 data;
         
        Work_Led_On();
        //Work_Led_Off();
        //Send_Data_To_Camera((u8*)"nima",4);
        if (__HAL_USART_GET_IT(&USART1_HandleStructure, USART_IT_TC) != RESET)
        {
               
                //__HAL_USART_CLEAR_IT(&USART1_HandleStructure, USART_CLEAR_TCF);
                //Send_Data_To_Camera((u8*)"nima", 4);
        }
        if (__HAL_USART_GET_IT(&USART1_HandleStructure, USART_IT_RXNE) != RESET)
        {
                data = USART1->RDR;
               
                Send_Data_To_Camera((u8*)"wocao", 5);
        }

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

使用道具 举报

11

主题

73

帖子

0

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2016-10-8
在线时间
123 小时
 楼主| 发表于 2017-5-31 21:28:31 | 显示全部楼层
回复

使用道具 举报

15

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
164
金钱
164
注册时间
2017-1-29
在线时间
37 小时
发表于 2017-10-1 23:00:24 | 显示全部楼层
兄弟,你的串口程序调试通了吗?我现在也在调试串口,发送用官方例程不行,你调试通了共享下吧。
回复

使用道具 举报

11

主题

73

帖子

0

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2016-10-8
在线时间
123 小时
 楼主| 发表于 2017-10-10 09:50:37 | 显示全部楼层
mochou99 发表于 2017-10-1 23:00
兄弟,你的串口程序调试通了吗?我现在也在调试串口,发送用官方例程不行,你调试通了共享下吧。

调通了,我用LL库函数就可以。。。有点奇怪
回复

使用道具 举报

11

主题

73

帖子

0

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2016-10-8
在线时间
123 小时
 楼主| 发表于 2017-10-10 09:56:33 | 显示全部楼层
mochou99 发表于 2017-10-1 23:00
兄弟,你的串口程序调试通了吗?我现在也在调试串口,发送用官方例程不行,你调试通了共享下吧。

LL_GPIO_InitTypeDef GPIO_InitStructure;
        LL_USART_InitTypeDef USART_InitStructure;
       
        /*GPIOCLK*/
        LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOA);
        /*USART1CLK*/
        LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_USART2);

       
        /*USART RX GPIO CONFIG*/
        GPIO_InitStructure.Pin                                         = LL_GPIO_PIN_3;
        GPIO_InitStructure.Mode                                        = LL_GPIO_MODE_ALTERNATE;
        GPIO_InitStructure.Speed                                = LL_GPIO_SPEED_FREQ_HIGH;
        GPIO_InitStructure.Pull                                        = LL_GPIO_PULL_NO;
        GPIO_InitStructure.Alternate                = LL_GPIO_AF_1;
        LL_GPIO_Init(GPIOA, &GPIO_InitStructure);
       
        /*USART TX GPIO CONFIG*/
        GPIO_InitStructure.Pin                                         = LL_GPIO_PIN_2;
        GPIO_InitStructure.Mode                                        = LL_GPIO_MODE_ALTERNATE;
        GPIO_InitStructure.Speed                                = LL_GPIO_SPEED_FREQ_HIGH;
        GPIO_InitStructure.OutputType                = LL_GPIO_OUTPUT_PUSHPULL;
        GPIO_InitStructure.Pull                                        = LL_GPIO_PULL_NO;
        GPIO_InitStructure.Alternate                = LL_GPIO_AF_1;
        LL_GPIO_Init(GPIOA, &GPIO_InitStructure);
       
        /*USART CONFIG*/
        USART_InitStructure.BaudRate                                                        =        115200;
        USART_InitStructure.DataWidth                                                        = LL_USART_DATAWIDTH_8B;
        USART_InitStructure.StopBits                                                        = LL_USART_STOPBITS_1;
        USART_InitStructure.Parity                                                                = LL_USART_PARITY_NONE;
        USART_InitStructure.TransferDirection                        = LL_USART_DIRECTION_TX_RX;
        USART_InitStructure.HardwareFlowControl                = LL_USART_HWCONTROL_NONE;
        USART_InitStructure.OverSampling                                        = LL_USART_OVERSAMPLING_16;
       
        LL_USART_Init(USART2, &USART_InitStructure);
回复

使用道具 举报

32

主题

171

帖子

0

精华

高级会员

Rank: 4

积分
697
金钱
697
注册时间
2017-1-7
在线时间
75 小时
发表于 2017-10-10 10:43:02 | 显示全部楼层
具体是很么问题,发和收都没有现象吗?
回复

使用道具 举报

15

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
164
金钱
164
注册时间
2017-1-29
在线时间
37 小时
发表于 2017-10-10 11:23:25 | 显示全部楼层
Jevin乐动 发表于 2017-10-10 10:43
具体是很么问题,发和收都没有现象吗?

通过串口调试助手,可以看到发出的数据,接收的话偶尔有数据,大部分情况下是只有一个字节的数据,很不稳定
回复

使用道具 举报

11

主题

73

帖子

0

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2016-10-8
在线时间
123 小时
 楼主| 发表于 2017-10-10 11:27:39 | 显示全部楼层
mochou99 发表于 2017-10-10 11:23
通过串口调试助手,可以看到发出的数据,接收的话偶尔有数据,大部分情况下是只有一个字节的数据,很不稳 ...

你通过什么来看接收现象的?一般是串口接收中断吧,
回复

使用道具 举报

15

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
164
金钱
164
注册时间
2017-1-29
在线时间
37 小时
发表于 2017-10-10 15:22:53 | 显示全部楼层
RobertHand 发表于 2017-10-10 11:27
你通过什么来看接收现象的?一般是串口接收中断吧,

串口中断,接收缓冲区内的数据
回复

使用道具 举报

15

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
164
金钱
164
注册时间
2017-1-29
在线时间
37 小时
发表于 2017-10-10 15:25:44 | 显示全部楼层
mochou99 发表于 2017-10-10 11:23
通过串口调试助手,可以看到发出的数据,接收的话偶尔有数据,大部分情况下是只有一个字节的数据,很不稳 ...

串口中断接收缓冲区数据
图片1.jpg
回复

使用道具 举报

11

主题

73

帖子

0

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2016-10-8
在线时间
123 小时
 楼主| 发表于 2017-10-10 17:52:50 | 显示全部楼层
mochou99 发表于 2017-10-10 15:25
串口中断接收缓冲区数据

你先看看串口接收在看DMA接收呢,一步步的调试。直接看串口接收寄存器,你发一个看看是不是跟着变的。。你这代码主循环一直设置接收BUFF的长度(我没看HAL库函数的函数原型),会不会将接收到的值重复存储在数组的前面几位。。。。好像是没设置一次接收长度,就会从头开始是不是?
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2019-8-30
在线时间
15 小时
发表于 2019-8-30 17:24:47 | 显示全部楼层
有32l052的固件库没
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2019-9-30
在线时间
8 小时
发表于 2020-1-20 14:14:57 | 显示全部楼层
baigq 发表于 2019-8-30 17:24
有32l052的固件库没

同求,我也想要
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2020-3-15
在线时间
6 小时
发表于 2020-3-15 18:53:38 | 显示全部楼层
mochou99 发表于 2017-10-10 15:25
串口中断接收缓冲区数据

楼主能不能发一个Demon给我呢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-22 18:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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