新手上路
- 积分
- 44
- 金钱
- 44
- 注册时间
- 2022-8-25
- 在线时间
- 7 小时
|
1金钱
求教,单片机能接受到串口助手发送的数据,用labview的旋钮输出的数据,单片机没反应,个人觉得是labview发送的数据与单片机接受用的字符串 uint8_t Rx_dat[10000];不匹配导致,但是不知道该怎么解决,求教大佬们一下发送给单片机的一组数据
bf 10 fb ff 11 cf ff 23 df ff 12 bf
单片机可以收到
单片机接收用的中断回调函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart->Instance == USART1)//判断串口号是否正确是1
{
if(Rx_dat[0] == 0xbf && Rx_dat[2] == 0xaf&& Rx_dat[3] == 0xff&& Rx_dat[5] == 0xcf&& Rx_dat[6] == 0xff&& Rx_dat[8] == 0xdf&& Rx_dat[9] == 0xff&& Rx_dat[11] == 0xfb)//
{
TIM_PWM_Freq_Duty(&htim2,TIM_CHANNEL_3,10000,Rx_dat[1]);//对应于PA2口,设置频率为5000,占空比由Rx_dat[1]控制
HAL_UART_Receive_IT(&huart1,Rx_dat,12);//非阻塞式接收,单片机向串口发送完数据后,等待接收上位机的返回数据,会再次触发进入回调函数
}
}
}
用labview的设计
前面板
后面板
求教大佬
|
最佳答案
查看完整内容[请看2#楼]
已解决,就是labview发送的是数值转字符串后的ASCLL码对应的十六进制值,不是数值对应的十六进制值,需要一个强制类型转换就可以了
|