Lập trình USB phần 1

Đúng là từ việc mình hiểu đến việc diễn đạt cho người khác có thể hiểu được là cả một quá trình dài. Có chỗ nào chưa hiểu thì mọi người hãy đặt câu hỏi ở phần comment của video. Mình sẽ trả lời nhé.

Mã nguồn của phần này

#include "ch552.h"
#include <stdint.h>

void delay_ms(uint16_t u16Delay);

void delay_ms(uint16_t u16Delay)
{
	
	while (u16Delay) {
		TF0 = 0;
		TH0 = 0xA2;
		TL0 = 0x40;
		TR0 = 1;
		while (!TF0) {
		}
		TR0 = 0;
		--u16Delay;
	}
}

void main(void)
{
	
	/* clock */
	SAFE_MOD = 0x55;
	SAFE_MOD = 0xAA;
	CLOCK_CFG = 0x86;
	SAFE_MOD = 0x00;
	
	/* P1.4 */
	/* Push-pull */
	P1_MOD_OC &= ~(1 << 4);
	P1_DIR_PU |= (1 << 4);
	
	P1 &= ~(1 << 4);
	
	T2MOD |= (1 << 7);
	T2MOD |= (1 << 4);
	TMOD = 0x01;
	
	while (1) {
		P1 |= (1 << 4);
		delay_ms(100);
		P1 &= ~(1 << 4);
		delay_ms(100);
	}
}

Link mã nguồn
https://drive.google.com/open?id=1oOQkf9PfX1wCTBj-eJaUum8hWtIOQ6lm