| @@ -18,6 +18,9 @@ void AppTaskModbusParse (void *p_arg); | |||||
| void AppTaskModbusWriteFlash(void *p_arg); | void AppTaskModbusWriteFlash(void *p_arg); | ||||
| static void AppTaskModbusConnect(void *p_arg); | static void AppTaskModbusConnect(void *p_arg); | ||||
| extern uint8_t ModbusCoil[1250]; /*10000/8=1250*/ | |||||
| extern uint16_t ModbusReg[10000]; | |||||
| int main() | int main() | ||||
| { | { | ||||
| @@ -62,6 +65,9 @@ void AppTaskStart(void *p_arg) | |||||
| ModbusRegReadFlash(); | ModbusRegReadFlash(); | ||||
| ModbusCoilReadFlash(); | ModbusCoilReadFlash(); | ||||
| //memset(ModbusCoil, 0, sizeof(ModbusCoil)); | |||||
| //memset(ModbusReg, 0, sizeof(ModbusReg)); | |||||
| /* 创建modbus协议帧解析任务 */ | /* 创建modbus协议帧解析任务 */ | ||||
| OSTaskCreateExt(AppTaskModbusParse, | OSTaskCreateExt(AppTaskModbusParse, | ||||
| @@ -24,7 +24,7 @@ | |||||
| <stlinkfoundProbes /> | <stlinkfoundProbes /> | ||||
| </StLinkDriver> | </StLinkDriver> | ||||
| <DebugChecksum> | <DebugChecksum> | ||||
| <Checksum>171243166</Checksum> | |||||
| <Checksum>4279408766</Checksum> | |||||
| </DebugChecksum> | </DebugChecksum> | ||||
| <Exceptions> | <Exceptions> | ||||
| <StopOnUncaught>_ 0</StopOnUncaught> | <StopOnUncaught>_ 0</StopOnUncaught> | ||||
| @@ -124,7 +124,8 @@ | |||||
| <mode>0</mode> | <mode>0</mode> | ||||
| </DisassembleMode> | </DisassembleMode> | ||||
| <Breakpoints2> | <Breakpoints2> | ||||
| <Count>0</Count> | |||||
| <Bp0>_ 1 "EMUL_CODE" "{$PROJ_DIR$\..\modbus\modbus.c}.176.17" 0 0 1 "" 0 "" 0</Bp0> | |||||
| <Count>1</Count> | |||||
| </Breakpoints2> | </Breakpoints2> | ||||
| <LogFile> | <LogFile> | ||||
| <LoggingEnabled>_ 0</LoggingEnabled> | <LoggingEnabled>_ 0</LoggingEnabled> | ||||
| @@ -316,7 +316,7 @@ uint8_t ModbusWriteCoils(uint16_t addres, uint16_t num, uint8_t *data) | |||||
| bitIndO = i % 8; | bitIndO = i % 8; | ||||
| /*位掩码读取要写入的值*/ | /*位掩码读取要写入的值*/ | ||||
| readVal = data[byteIndO] | ((uint8_t)1 << bitIndO); | |||||
| readVal = data[byteIndO] & ((uint8_t)1 << bitIndO); | |||||
| /*将写入值移位到要写入的位*/ | /*将写入值移位到要写入的位*/ | ||||
| writeVal = (uint8_t)1 << bitIndI; | writeVal = (uint8_t)1 << bitIndI; | ||||
| @@ -24,7 +24,7 @@ void AppTaskModbusWriteFlash(void *p_arg) | |||||
| OSTimeDly(OS_TICKS_PER_SEC); | OSTimeDly(OS_TICKS_PER_SEC); | ||||
| while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET); | while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET); | ||||
| ModbusErr = ModbusFlashWrite(); | |||||
| // ModbusErr = ModbusFlashWrite(); | |||||
| } | } | ||||
| } | } | ||||