chunyang
获得 4 次赞
帮助过124人
高字节读出是0xff低字节读出是0x00 不明白什么原因。 void TMP275_Init() { //IIC_Init(); IIC_Start(); IIC_Write_Byte(0x96); IIC_Wait_Ack(); IIC_Write_Byte(0x01); IIC_Wait_Ack(); IIC_Write_Byte(0xFE); IIC_Wait_Ack(); IIC_Stop(); } u16 TMP275_Read_Byte() { u8 data_Hdata_L; u16 temp = 0; IIC_Start(); IIC_Write_Byte(0x96); IIC_Wait_Ack(); IIC_Write_Byte(0x00); IIC_Wait_Ack(); IIC_Start(); IIC_Write_Byte(0x97); IIC_Wait_Ack(); data_H = IIC_Read_Byte(1); data_L = IIC_Read_Byte(0); IIC_Stop(); temp = (((u16)data_H<<8)|data_L); temp>>=4; LED0 = ~LED0; return temp; }
标准库一切正常,也能检测到发送: 标准库串口实验.png (185.32 KB 下载次数: 0) 下载附件 标准库串口昨天 09:16 上传 HAL库,串口助手接收有乱码,且串口发送不能被识别: HAL库串口.png (171.87 KB 下载次数: 0) 下载附件 HAL库串口昨天 09:17 上传 例子都是原子的,哪位能帮看下。
【节日专享】ESP8266、STM32小系统板等免费送!点击领取https://www.icxbk.com/ask/detail/31744.html小白一枚,求各位大神指点。利用stm32对esp8266写AT指令进行初始化失败,用串口调试助手发现指令已经发出,且无误。 #include "stm32f10x.h" #include "esp8266.h" #include "delay.h" void Send_data(char *s) { while(*s!='\0') { while(USART_GetFlagStatus(USART1USART_FLAG_TC )==RESET); USART_SendData(USART1*s); s++; } } void My_esp8266_init(void) { Send_data("AT+CWMODE=2\r\n"); Send_data("AT+RST\r\n"); Send_data("AT+CWSAP=\"i\"\"123456789\"13\r\n"); Send_data("AT+CIPMUX=1\r\n"); Send_data("AT+CIPSERVER=18086\r\n"); } main.c文件如下 #include "stm32f10x.h" #include "led.h" #include "delay.h" #include "esp8266.h" #include "uart.h" extern void My_esp8266_init(void); extern void My_uart_init(void); int main(void) { My_uart_init(); My_esp8266_init(); }
代码如图,state==out时开启 MOS管,达到一定时间后关闭MOS管进入delay状态,再到一定时间重新打开MOS管。 但是实际运行结果是打开MOS管后不会再关闭,为什么不会进入if((tickGet() - tick_delay) >= dutycycle *sysClkRateGet() / 100)中?