A data transmission method, comprising: determining, by a first device (1300, 1500, 1700, 1900), whether a transmission code rate used for transmitting to-be-transmitted system bits is greater than a first threshold and, if the first device (1300, 1500, 1700, 1900) determines that the transmission code rate is greater than a first threshold, the first device determines to: repeatedly transmit, by the first device (1300, 1500, 1700, 1900), first data to a second device (1400, 1600, 1800, 2000) within a first time unit set, wherein the first data is determined based on a first redundancy version and to-be-transmitted system bits, the first time unit set comprises K time units, K≥3, and K is an integer; and when a first condition is met, stop, by the first device (1300, 1500, 1700, 1900), transmitting the first data in the M th time unit, wherein 2≤M≤K, and M is an integer, wherein the transmission code rate used by the first device (1300, 1500, 1700, 1900) for transmitting the to-be-transmitted system bits is determined based on a quantity of the to-be-transmitted system bits, a quantity of transmission resources corresponding to the to-be-transmitted system bits, and a modulation scheme and the first threshold is a code rate of channel coding corresponding to the to-be-transmitted bits. determining, by a first device (1300, 1500, 1700, 1900), whether a transmission code rate used for transmitting to-be-transmitted system bits is greater than a first threshold and, if the first device (1300, 1500, 1700, 1900) determines that the transmission code rate is greater than a first threshold, the first device determines to: repeatedly transmit, by the first device (1300, 1500, 1700, 1900), first data to a second device (1400, 1600, 1800, 2000) within a first time unit set, wherein the first data is determined based on a first redundancy version and to-be-transmitted system bits, the first time unit set comprises K time units, K≥3, and K is an integer; and when a first condition is met, stop, by the first device (1300, 1500, 1700, 1900), transmitting the first data in the M th time unit, wherein 2≤M≤K, and M is an integer, wherein the transmission code rate used by the first device (1300, 1500, 1700, 1900) for transmitting the to-be-transmitted system bits is determined based on a quantity of the to-be-transmitted system bits, a quantity of transmission resources corresponding to the to-be-transmitted system bits, and a modulation scheme and the first threshold is a code rate of channel coding corresponding to the to-be-transmitted bits. repeatedly transmit, by the first device (1300, 1500, 1700, 1900), first data to a second device (1400, 1600, 1800, 2000) within a first time unit set, wherein the first data is determined based on a first redundancy version and to-be-transmitted system bits, the first time unit set comprises K time units, K≥3, and K is an integer; and when a first condition is met, stop, by the first device (1300, 1500, 1700, 1900), transmitting the first data in the M th time unit, wherein 2≤M≤K, and M is an integer, wherein the transmission code rate used by the first device (1300, 1500, 1700, 1900) for transmitting the to-be-transmitted system bits is determined based on a quantity of the to-be-transmitted system bits, a quantity of transmission resources corresponding to the to-be-transmitted system bits, and a modulation scheme and the first threshold is a code rate of channel coding corresponding to the to-be-transmitted bits.