CUbeIde如何禁止使用最新的固件包
ADC每次开始采样直流电压时,会出现尖峰波形?
STM32F103上TIM1的PWM互补输出
如何用c#使用ST25R3911DISCOComm.dll来读取和写入NDEF区的数据,需要相关例程,感谢各位大佬拯救一下我啊!????
stm32cubemx软件里面myST一直登录不上,但是官网可以上
已解决
CubeMX生成的freertos工程没有代码提示。
cubemx安装HAL库时要账号登录,点击注册,显示错误,ST官网点击注册也是显示错误,请问是什么问题?
基于GCC编译器的initcall在STM32如何实现?
想找一款pin to pin的MCU(参考STM32F105RC),支持CAN FD的,64PIN封装,各位小伙伴们有推荐吗
如果是USB不在中断里处理,那就好办多了,随便搞个标志位就好了。
用SPI接SD卡,用USB接PC,不就能独立了么?
USB Device只是一个外设,CPU访问它,也访问SDIO外设。
fatfs是一套软件程序库,CPU执行其中的功能,间接对SDIO外设进行访问。
你想的功能,是软件上如何规划的问题。两个部分都想用SDIO,那么得有互斥的机制。可以考虑作为RTOS的两个任务来处理。
{
OS_ERR err;
CPU_SR_ALLOC();
u8 offline_cnt=0;
u8 USB_STA=0;
u8 Divece_STA=0;
u8 i=0,err_back=0;
u16 werr=0,rerr=0;
(void)p_arg;
USB_GPIO_init();
Set_USBClock();
USB_Interrupts_Config();
USB_Init();
while(1)
{
if(bDeviceState==CONFIGURED)
{
OSMutexPend (&TEST_MUTEX,0,OS_OPT_PEND_BLOCKING,0,&err); //请求互斥量
bsp_DelayMS(5);
if(USB_STATUS_REG&0x03)//USB读写
{
err_back=0x80;
}else break;//USB空闲退出
if(USB_STA!=USB_STATUS_REG)//状态改变
{
if(USB_STATUS_REG&0x01) //正在写
{
USB_STATUS_REG&=0xFD;//清除读标志
}
if(USB_STATUS_REG&0x02)//正在读
{
USB_STATUS_REG&=0xFE;//清除写标志
}
if(USB_STATUS_REG&0x04)
{
werr++;
}
if(USB_STATUS_REG&0x08)
{
rerr++;
}
USB_STA=USB_STATUS_REG;//记录最后标志
}
if(Divece_STA!=bDeviceState)
{
Divece_STA=bDeviceState;
}
i++;
if(i==200)//200ms
{
i=0;
if(USB_STATUS_REG&0x10)
{
offline_cnt=0;//USB连接,清除offline_cnt
bDeviceState=CONFIGURED;
}else//ûÓеõ½ÂÖѯ
{
offline_cnt++;
if(offline_cnt>10)bDeviceState=UNCONNECTED;//2s没有在线标志标志USB拔出
}
if(err_back&0x80)
{
err_back++;
if((err_back&0x07)==0x07)
{
err_back=0;
}
}
USB_STATUS_REG=0;
}
OSMutexPost(&TEST_MUTEX,OS_OPT_POST_NONE,&err);
}
LED2_TOGGLE;
OSTimeDlyHMSM(0, 0, 0, 5, OS_OPT_TIME_HMSM_STRICT,&err);
}
}
USB程序将SD卡用作MSC,
然后,还有一个程序要1S钟写一次SD卡数据。
需要修改USB例程。
有两种思路:
1. 定时写SD卡也用USB例程操作SD卡的接口。
2. 在SD卡驱动中添加互斥,并且要梳理两者逻辑。
个人觉得有点复杂,因为USB通信对时序要求挺高的。
我也在搞这个,能否指点一下