|
本帖最后由 雷鹏 于 2022-12-4 15:03 编辑
昨天看了USB应用实战教程,收获很多,不到半天时间在STM32F407上实现了USB-HS接口开发,并在QT5.12上实现了上位机开发,为了感谢硬汉老师多年对我的帮助,特意发帖分享给大家,希望能在项目上帮助大家。 手上没有开发板,只有一个RS485 RS232 CAN接口工控液晶显示器,这个工控液晶显示器和功能还很多的,有需要了解的朋友可以看硬件平台链接,我就不细说了。
我主要想说一下这个工控屏把USB接口用MicroUSB接口接出来了,接口电路如图。
网络上有很多采用STM32CubeMX来配置这个接口做虚拟串口的帖子,照着做了一下,居然成功了。但是我现在项目上有很多CAN接口数据要分析,如果用CAN分析仪来抓包,只能产看数据流,不能对数据流进一步的分析和判断。后来看了USB应用实战教程,发现USB通讯操作起来也不是很难。然后照着视频教程先实现了下位机开发。要把这个搞好还是要有点知识,大家想弄的话务必先看视频教程,我把踩坑的地方贴出来说明一下,
RTE配置
重点说一下 要用HS一定要把FS选上
这里也要两个都要选择上
这个也一定要设置对
其他的没什么了,mian函数写点简单代码就可以了
添加必要的头文件
#include "main.h"
#include "rl_usb.h"
#include "stdlib.h"
#include "math.h"
void app_main () 函数实现
uint8_t usbdata[1024] ;
void app_main ()
{
USBD_Initialize (1); /*采用HS接口 这里要写1*/
USBD_Connect (1); /*USB Device 0 Connect */
while (USBD_Configured ( 1) !=usbOK )
{
osDelay(10);
}
while(1)
{
if(USBD_CDC_ACM_DataAvailable (1) !=0)
{
USBD_CDC_ACM_ReadData (1,usbdata,1);
switch(usbdata[0])
{
case 2:
for(int i=0;i<1024;i++)
{
usbdata = rand()%20+sin(5*3.1415*2*i/1024)*100-10;
USBD_CDC_ACM_WriteData (1,usbdata,1024);
}
break;
}
}
osDelay(1);
}
}
int main(void)
{
HAL_Init();
/* Configure the system clock to 168 MHz */
SystemClock_Config();
SystemCoreClockUpdate();
/* Add your application code here
*/
#ifdef RTE_CMSIS_RTOS2
/* Initialize CMSIS-RTOS2 */
osKernelInitialize ();
/* Create thread functions that start executing,*/
osThreadNew(app_main, NULL, NULL);
/* Start thread execution */
osKernelStart();
#endif
/* Infinite loop */
while (1)
{
}
}
编译下载就可以了。
上位机开发教程用的是QT6.4,因为波形显示数据量太大,而且不能缩放和移动,之前有做过波形显示,我用的是QT5.12的版本,工程目录如图
chart 和chartview 是我在网上找的,代码我就不贴图了,有兴趣的朋友可以下载玩一下。最后上效果图。原图
滚动鼠标中间滚轮水平缩放
按住 Ctrl 键 滚动鼠标中间滚轮垂直缩放
点击鼠标右键波形还原,然后点击鼠标左键不放可以拖动波形
硬件平台
【安富莱】新品上市, RS485 RS232 CAN接口工控液晶显示器
https://www.armbbs.cn/forum.php?mod=viewthread&tid=9905&fromuid=18397
(出处: 硬汉嵌入式论坛)
参考资料
1.USB应用实战教程第3期:手把手玩转USB BULK方式下位机和QT6.4上位机开发(上篇)
https://www.bilibili.com/video/BV1he4y177Ea/?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click&vd_source=53b19f4755911fc0fbe92865325c1c5d
2.USB应用实战第4期:手把手玩转基于QT6.4的USB BULK上位机和下位机开发(下篇)
https://www.bilibili.com/video/BV1nt4y1K7oZ/?spm_id_from=333.788&vd_source=53b19f4755911fc0fbe92865325c1c5d
代码和工程分享
上位机
STM32_USB_QT.rar
(15.53 KB, 下载次数: 7)
下位机
STM32_USB_RTE.rar
(708.85 KB, 下载次数: 13)
chart 和chartview QT工程
zoomchart.rar
(8.93 KB, 下载次数: 6)
|
|