完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
请问初始化CH375为主机模式时,CH375一直无数据返回给单片机是什么原因?无论写入什么命令,都无数据返回。
void CH375_WR_CMD_PORT( unsigned char cmd ) { u8 aCmd; if(USART_GetFlagStatus(USART2, USART_FLAG_TXE)!=RESET) { aCmd = 0x100 | cmd; USART_SendData(USART2, aCmd); delay_us(200); } } void CH375_WR_DAT_PORT( unsigned int dat ) { unsigned int aData; if(USART_GetFlagStatus(USART2, USART_FLAG_TXE)!=RESET) { aData = 0xff & dat; USART_SendData(USART2, aData); delay_us(200); } } unsigned int CH375_RD_DAT_PORT() { unsigned int dat; while(USART_GetFlagStatus(USART2,USART_FLAG_RXNE)==RESET); dat = USART_ReceiveData(USART2); USART_ClearFlag(USART2,USART_FLAG_RXNE); return(dat); } unsigned char mWaitinterrupt() { unsigned char c; CH375_INT_WIRE=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1); while( CH375_INT_WIRE ); CH375_WR_CMD_PORT( CMD_GET_STATUS ); c = CH375_RD_DAT_PORT( ); if ( c == USB_INT_DISCONNECT ) mDeviceOnline = 0; else if ( c == USB_INT_CONNECT ) mDeviceOnline = 1; return( c ); } unsigned charmCH375Init( ) { unsigned chari,c; CH375_WR_CMD_PORT( CMD_SET_USB_MODE ); CH375_WR_DAT_PORT( 6 ); for ( i = 0xff; i != 0; i -- ) { c = CH375_RD_DAT_PORT( ); if ( c == CMD_RET_SUCCESS ) break; } if ( i != 0 ) return( TRUE ); else return( FALSE ); } |
|
相关推荐
9个回答
|
|
晶振是否起振?V3引脚在电源电压为5V时通过103电容接地,在3.3V供电时,直接连接到3.3V电源上
|
|
|
|
晶振已经起振,V3引脚是直接连接到3.3V电源上的,我用三线制,INT引脚是必须要接地或者低电平吗,然后这CH375是可以用3.3V供电吧
|
|
|
|
下面代码为ch375部分设置,在 c = CH375_RD_DAT_PORT( ); 这句一直无法通过,因为无法获取返回值,就一直处理等待状态。
CH375_WR_CMD_PORT( CMD_SET_USB_MODE ); CH375_WR_DAT_PORT( 6 ); delay_us(20); CH375_WR_CMD_PORT( CMD_CHECK_EXIST ); CH375_WR_DAT_PORT( 0x55 ); c = CH375_RD_DAT_PORT( ); if ( c != 0xaa ) { for ( i = 100; i != 0; i -- ) { CH375_WR_CMD_PORT( CMD_RESET_ALL ); c = CH375_RD_DAT_PORT( ); } delay_ms(50); } |
|
|
|
邮件上:软件上,R引脚配置成浮空?INT脚配置成特殊功能脚? 修改一下。
|
|
|
|
现在用的是串口查询,硬件上把INT引脚直接接地了,R引脚试了用其它输入方式也一样,配置成浮空输入时将R和T引脚短接收发都正确
|
|
|
|
|
|
|
|
CH375串口波特率默认是4800吧,软件配置的stm32波特率为9600,现在可以有数据返回了,但发送命令返回后的值都为0xff
|
|
|
|
请问ch375串口方式时,区分发送命令还是发送数据是根据第九位是1还是0吧
|
|
|
|
您好,STM32操作CH375进行初始化的步骤为,初始化GPIO,初始化USART,然后就是配置接口函数。接口函数可以参考下面的设置。可以参考链接http://www.wch.cn/index.php/bbs/thread-65122-1.html中的STM例程的第三个
1. void xWriteCH375Cmd( unsigned char mCmd ) /* 写CH375命令码 */{ USART_SendData(CH375_UART, (uint16_t)mCmd|0x0100); while(USART_GetFlagStatus(CH375_UART,USART_FLAG_TC)==RESET); mDelayuS(3);}2. void xWriteCH375Data( unsigned char mData ) /* 写375数据 */{ USART_SendData(CH375_UART, (uint16_t)mData); while(USART_GetFlagStatus(CH375_UART,USART_FLAG_TC)==RESET); mDelayuS(2);}3. unsigned char xReadCH375Data( void ) { while(USART_GetFlagStatus(CH375_UART,USART_FLAG_RXNE)==RESET); return( (uint8_t)USART_ReceiveData(CH375_UART) );} |
|
|
|
只有小组成员才能发言,加入小组>>
518 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2901 浏览 2 评论
2397 浏览 1 评论
865浏览 2评论
683浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
415浏览 1评论
518浏览 1评论
请教一下,Mounriver 编译不成功:找不到库文件,怎么整
810浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 13:34 , Processed in 1.179915 second(s), Total 93, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号