Kết nối UART

Nguyen Minh Minh

Trứng gà
Các bạn cho mình hỏi: mình cấu hình UART ở hai chân PB0 và PB1 để kết nối cổng COM ảo với module HC05 ngoài Hshop. Sau khi down code xuống KIT, mình cấp nguồn riêng cho KIT(5v) và cho kết nối KIT với sơ đồ chân như sau:
* VCC và EN của module nối với chân 5v.
* GND nối GND.
* RXD nối PB0; TXD nối PB1
Khi mở máy tính lên, bật bluetooth lên, thấy nhận kết nối với 1 thiết bị bluetooth ở ngoài. Mình bật hyperterminal lên thì lại thấy báo không có kết nối cổng COM nào để truyền, nhận dữ liệu cả. Mình không biết tại sao. Mong các bạn giúp đỡ. Mình xin cảm ơn.

PS: dưới đây là code CCS.
Code:
#include <stdint.h>
#include <stdbool.h>
#include <string.h>
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/debug.h"
#include "driverlib/fpu.h"
#include "driverlib/gpio.h"
#include "driverlib/pin_map.h"
#include "driverlib/rom.h"
#include "driverlib/sysctl.h"
#include "driverlib/uart.h"
#include "utils/uartstdio.h"
#include "driverlib/adc.h"
#include "driverlib/interrupt.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
uint32_t bb=0;
uint32_t aa=0;
 
#define RED_LED GPIO_PIN_1
#define BLUE_LED GPIO_PIN_2
#define GREEN_LED GPIO_PIN_3
 
void
ConfigureUART(void)
{
//
// Enable the GPIO Peripheral used by the UART.
//
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
 
//
//
//
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1);
 
//
// Configure GPIO Pins for UART mode.
//
GPIOPinConfigure(GPIO_PB0_U1RX);
GPIOPinTypeUART(GPIO_PORTB_BASE, GPIO_PIN_0);
GPIOPinConfigure(GPIO_PB1_U1TX);
GPIOPinTypeUART(GPIO_PORTB_BASE, GPIO_PIN_1);
 
//
// Use the internal 16MHz oscillator as the UART clock source.
//
UARTClockSourceSet(UART1_BASE, UART_CLOCK_PIOSC);
 
//
// Initialize the UART for console I/O.
//
UARTStdioConfig(1, 115200, 16000000);
}
 
 
 
 
int main(void)
{
 
SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED);
 
 
 
 
 
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ |
SYSCTL_OSC_MAIN);
 
 
ConfigureUART();
 
IntMasterEnable(); //enable processor interrupts
//IntEnable(UART1_BASE); //enable the UART interrupt
UARTIntEnable(UART1_BASE, UART_INT_RX); //only enable RX and TX interru
 
 
while(1)
{
 
UARTprintf("%3d\n",aa);
GPIOPinWrite(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED, RED_LED);
// Delay
SysCtlDelay(10000000);
aa=aa+1;
 
}
 
}
void UARTIntHandler(void)
{
UARTIntClear(UART1_BASE, UARTIntStatus(UART1_BASE, true));
bb=UARTCharGet(UART1_BASE);
if(bb==123)
{
//UARTprintf("%3d",aa);
GPIOPinWrite(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED, BLUE_LED);
// Delay
SysCtlDelay(200000000);
//aa++;
}
}
 

honghiep

Cố Vấn CLB
Staff member
Đầu tiên là việc máy tính không mở được cổng COM thì chưa liên quan đến code, việc này liên quan đến module bluetooth hoặc driver trên máy tính. Bạn kiểm tra lại xem máy tính đã kết nối đươc với module bluetooth hay chưa.
Thứ 2: khi sài module bluetooth, bạn cần config cho nó trước, về mode hoạt động, baud, tên, password ...
 
Top