搜索
查看: 771|回复: 4

[已解决] stm32f407 hal 库usart1调节电机pid

[复制链接]

该用户从未签到

3

主题

9

帖子

0

蝴蝶豆

初级会员

最后登录
2021-6-2
发表于 2019-11-7 23:03:59 | 显示全部楼层 |阅读模式
今天遇到的问题是
  usart1单独控制,编码器不输出速度是能够稳定运行
  并且usart能输出电机的运动状态(正转,反转,停止)
输出速度之后会死在
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
{
  uint16_t* tmp;
  uint32_t tickstart = 0U;
  
  /* Check that a Tx process is not already ongoing */
  if(huart->gState == HAL_UART_STATE_READY)
  {
    if((pData == NULL ) || (Size == 0))
    {
      return  HAL_ERROR;
    }
这个地方
   发送时使用的usart1 print重定向发送
int fputc(int ch, FILE *f)
{
   HAL_UART_Transmit (&husart1, (uint8_t *)&ch,1 , 0xffff);
  return ch;
}
电机速度编码器中断以后usart1重定向发送的


回复

使用道具 举报

该用户从未签到

0

主题

2

帖子

3

蝴蝶豆

新手上路

最后登录
2021-11-18
发表于 2019-11-8 08:05:37 | 显示全部楼层
电机速度变化太快了吧,串口跟不上
回复 支持 反对

使用道具 举报

该用户从未签到

5

主题

613

帖子

138

蝴蝶豆

金牌会员

最后登录
2022-5-19
发表于 2019-11-8 09:53:13 | 显示全部楼层
您的编码器应是增量编码器吧,单向单工的,即纯接收的的,对不?
1)若是,关闭 uart 的 打印重定向发送,看还死机不?
2)若还不行,关闭 uart 发送,只保留接收,看还死机不?
若是双向双工的uart 通讯,能否祥细告述增量编码器 波特率?

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

14

主题

736

帖子

256

蝴蝶豆

论坛元老

最后登录
2021-4-20
发表于 2019-11-8 14:46:45 | 显示全部楼层
应该是发送太频繁造成的  可以试试用DMA发送  

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

1306

帖子

929

蝴蝶豆

版主

最后登录
2021-3-31
发表于 2019-11-20 15:59:17 | 显示全部楼层
如果是卡在 return  HAL_ERROR;这个地方,断点打在这里,看看前面的是哪个条件,顺着线索找下去就应该能发现原因

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-27 10:55 , Processed in 1.167520 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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