usb - 代码卡在 MX_USB_DEVICE_Init(); 并在连接到 USB comm 的另一端时得到修复
问题描述
我使用 STM32F103C8Tx,但 USB 通信无法按预期工作。有时代码卡在 MX_USB_DEVICE_Init(); 功能..更特别的是它卡在
USBx->BTABLE = BTABLE_ADDRESS;
MX_USB_DEVICE_Init() 内的行;
当我连接 USB 通信的另一端时,它得到修复。
这背后的原因可能是什么?所以我需要连接USB设备,还是会卡在MX_USB_DEVICE_Init();功能?
注:与中断优先级无关。编辑:因为整个代码太长了。这是卡住的部分:(我使用FREERTOS。)
void StartDefaultTask(void const * argument)
{
/* init code for USB_DEVICE */
MX_USB_DEVICE_Init();
/* USER CODE BEGIN 5 */
//Set all variables to zero at the beginning
int dischargeSOCLevel;
socBattery1 = -1;
socBattery2 = -1;
dc1_done=0;
dc2_done=0;
started =0;
dc1_count=0;
dc2_count=0;
previous_time=0;
pre_error=0;
error=0;
derivative=0;
//integral=0;
temperatureBank2=0;
temperatureBank1=0;
realise=0;
avarage_current=0;
avarage_counter=0;
I2C_transmit_fail_count=0;
I2C_receive_fail_count=0;
currentDischargerState=DS_INITIALIZING;
osDelay(13000);
...
这是 USB 的 CubeMX 设置:
当我调试时,代码卡在这一行:
/*Set Btable Address*/
USBx->BTABLE = BTABLE_ADDRESS;
我知道这个问题太笼统了,但我真的不知道问题出在哪里,或者我应该在哪里更深入地解释。所以如果还有什么问题,请追问。
解决方案
推荐阅读
- c++ - 我的 esp32 M5 StickC plus 的 Wifi 不工作
- javascript - 反应承诺“无法读取 null 的属性‘nodeName’”
- neo4j - 使用密码进行元胞自动机样式搜索?
- java - else 语句每次都会与 if 语句一起打印
- python - 找不到元素 - Selenium python
- ionic-framework - 无法在本地提供离子文档
- go - 使用不同的 go.mod 文件构建一个 go 项目
- c++ - 为什么我不断收到访问冲突异常?
- django - 如何在 Django-CKEditor 中上传 PDF?
- javascript - reactjs axios发布请求抛出错误