Thông báo

Collapse
No announcement yet.

Kiểm tra đoạn code USART1 STM32 chỉ gửi giá trị 0

Collapse
X
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Kiểm tra đoạn code USART1 STM32 chỉ gửi giá trị 0

    Mình test module USART1 trên STM32F103R6. Yêu cầu sau mỗi khoảng delay sẽ gửi lên 1 ký tự 0 ('0'). Hiện tại sau mỗi khoảng delay nó gửi lên 2 byte giá trị đều là 0 (0x00) - lẽ ra phải là 1 byte có giá trị 0x30. Nhờ các bác trợ giúp dò lỗi ạ.
    Đây là RCC:
    Code:
    void RCC_Init(){    
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);    
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);    
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
    }
    Code cấu hình PA9,PA10 cho chân TX và chân RX:
    Code:
    void GPIO_Init(){    
        GPIO_InitTypeDef gpioconf;    
        gpioconf.GPIO_Speed=GPIO_Speed_50MHz;      
        gpioconf.GPIO_Mode=GPIO_Mode_IN_FLOATING;    
        gpioconf.GPIO_Pin=GPIO_Pin_10;    
        GPIO_Init(GPIOA,&gpioconf);        
        gpioconf.GPIO_Mode=GPIO_Mode_AF_PP;    
        gpioconf.GPIO_Pin=GPIO_Pin_9;    
        GPIO_Init(GPIOA,&gpioconf);
    }
    Code khởi tạo USART1:
    Code:
    void USART_Init(){    
        USART_InitTypeDef usartconf;    
        usartconf.USART_BaudRate=9600;    
        usartconf.USART_Mode=USART_Mode_Rx | USART_Mode_Tx;    
        usartconf.USART_Parity=USART_Parity_No;    
        usartconf.USART_StopBits=USART_StopBits_1;  
        usartconf.USART_WordLength=USART_WordLength_8b;    
        usartconf.USART_HardwareFlowControl=USART_HardwareFlowControl_None;    
        USART_Init(USART1,&usartconf);    
        USART_Cmd(USART1,ENABLE); }
    Main:
    Code:
    int main(){
        SystemInit();
        RCC_Init();
        GPIO_Init();
        USART_Init();
        while(1){
            USART_SendData(USART1,'0');
            for(int i=0;i<50000;i++);
        }
    }

Về tác giả

Collapse

duong_act Tìm hiểu thêm về duong_act

Bài viết mới nhất

Collapse

Đang tải...
X