完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在使用ST官网的例程X-CUBE-SPN7的UART_UI文件时,发现不知道该怎么通过串口大师来发正确的指令。
判断条件里有个Get_UART_Data() == 266 ,这个Get_UART_Data()只是返回 (UART.Instance->RDR); 这个266不知道怎么来的。有没有哪位高人指导一下? void UART_Set_Value() { if(Get_UART_Data() == 266 && (huart2.State != HAL_UART_STATE_BUSY_TX && huart2.State != HAL_UART_STATE_BUSY_TX_RX)) { if(Uart_cmd_flag == 0) { CMD_Parser((char*)aRxBuffer); } else { SIXSTEP_parameters.Uart_value_to_set = UART_num_decode(); switch(SIXSTEP_parameters.Uart_cmd_to_set) { case SETSPD_CMD: /*!< Set the new speed value command received */ PI_parameters.Reference = SIXSTEP_parameters.Uart_value_to_set; SIXSTEP_parameters.Ramp_Start = 1; BUFF_RCV = RXBUFFERSIZE; Uart_cmd_flag = 0; HAL_UART_Transmit(&huart2, (uint8_t *)rowLxBuffer, (COUNTOF(rowLxBuffer) - 1),500); UART_FLAG_RECEIVE = TRUE; huart2.State = HAL_UART_STATE_READY; break; case INIREF_CMD: /*!< Set the new STARUP_CURRENT_REFERENCE value command received */ SIXSTEP_parameters.Ireference = SIXSTEP_parameters.Uart_value_to_set; BUFF_RCV = RXBUFFERSIZE; Uart_cmd_flag = 0; huart2.State = HAL_UART_STATE_READY; HAL_UART_Transmit(&huart2, (uint8_t *)rowLxBuffer, (COUNTOF(rowLxBuffer) - 1),500); UART_FLAG_RECEIVE = TRUE; break; case POLESP_CMD: /*!< Set the Pole Pairs value command received */ SIXSTEP_parameters.NUMPOLESPAIRS = SIXSTEP_parameters.Uart_value_to_set; BUFF_RCV = RXBUFFERSIZE; Uart_cmd_flag = 0; huart2.State = HAL_UART_STATE_READY; HAL_UART_Transmit(&huart2, (uint8_t *)rowLxBuffer, (COUNTOF(rowLxBuffer) - 1),500); UART_FLAG_RECEIVE = TRUE; break; case ACCELE_CMD: /*!< Set the Accelleration for Start-up of the motor command received */ SIXSTEP_parameters.ACCEL = SIXSTEP_parameters.Uart_value_to_set; BUFF_RCV = RXBUFFERSIZE; Uart_cmd_flag = 0; huart2.State = HAL_UART_STATE_READY; HAL_UART_Transmit(&huart2, (uint8_t *)rowLxBuffer, (COUNTOF(rowLxBuffer) - 1),500); UART_FLAG_RECEIVE = TRUE; break; case DIRECT_CMD: /*!< Set the motor direction */ SIXSTEP_parameters.CW_CCW = SIXSTEP_parameters.Uart_value_to_set; MC_Set_PI_param(&I_parameters); BUFF_RCV = RXBUFFERSIZE; Uart_cmd_flag = 0; huart2.State = HAL_UART_STATE_READY; HAL_UART_Transmit(&huart2, (uint8_t *)rowLxBuffer, (COUNTOF(rowLxBuffer) - 1),500); UART_FLAG_RECEIVE = TRUE; break; case KP_PRM_CMD: /*!< Set the KP PI param command received */ PI_parameters.Kp_Gain = SIXSTEP_parameters.Uart_value_to_set; BUFF_RCV = RXBUFFERSIZE; Uart_cmd_flag = 0; huart2.State = HAL_UART_STATE_READY; HAL_UART_Transmit(&huart2, (uint8_t *)rowLxBuffer, (COUNTOF(rowLxBuffer) - 1),500); UART_FLAG_RECEIVE = TRUE; break; case KI_PRM_CMD: /*!< Set the KI PI param command received */ PI_parameters.Ki_Gain = SIXSTEP_parameters.Uart_value_to_set; BUFF_RCV = RXBUFFERSIZE; Uart_cmd_flag = 0; huart2.State = HAL_UART_STATE_READY; HAL_UART_Transmit(&huart2, (uint8_t *)rowLxBuffer, (COUNTOF(rowLxBuffer) - 1),500); UART_FLAG_RECEIVE = TRUE; break; case POTENZ_CMD: /*!< Enable Potentiometer command received */ BUFF_RCV = RXBUFFERSIZE; Uart_cmd_flag = 0; huart2.State = HAL_UART_STATE_READY; HAL_UART_Transmit(&huart2, (uint8_t *)rowLxBuffer, (COUNTOF(rowLxBuffer) - 1),500); UART_FLAG_RECEIVE = TRUE; SIXSTEP_parameters.Potentiometer = SIXSTEP_parameters.Uart_value_to_set; break; } /* switch case */ } /* else */ } /* if */ |
|
相关推荐
17个回答
|
|
实在是看了半天没找到对应的说明。
|
|
|
|
自己也改过串口参数,但是有问题,有时候串口就堵死了,就想看看官方实现的是怎么样,有没有可以参考的资料啊
|
|
|
|
可能是串口的数据长度不能超过266个。
|
|
|
|
这个是不是通过串口命令行来控制单片机的啊?
|
|
|
|
个人还是不怎么习惯使用这种库
|
|
|
|
签到是一种态度
|
|
|
|
个人还是不怎么习惯使用这种库
|
|
|
|
|
|
|
|
中括号里的STARTM这些,在程序里可以找到不?应该是直接输这些命令啊。。。。
|
|
|
|
个人还是不怎么习惯使用这种库
|
|
|
|
Get_UART_Data()返回值是什么类型?作用是啥?做了哪些操作?
|
|
|
|
没用过,顶一下
|
|
|
|
签到是一种态度
|
|
|
|
我觉得应该是255这个值,打字的时候没有注意,打成了266
|
|
|
|
我没有硬件...
你的图中不是很清楚吗?STATUS, DIRICT CW/CCW等 你的字符能显示,波特率什么的应该没有问题。然后就是发送的是ASCII码,这页没有问题。问题可能是需不需要换行了,什么的。 另一个可能的问题是你的串口工具不支持交互操作。你可以试试Putty |
|
|
|
这个例程里的E文说明木有吗?
|
|
|
|
签到签到
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2105 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1941 浏览 3 评论
4537 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2084 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2599 浏览 1 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 00:19 , Processed in 1.178469 second(s), Total 104, Slave 87 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号