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.
* 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++;
}
}