Lỗi Font chữ trong khi giao tiếp với HC05

denchetmatthoi

Trứng gà
Cho em hỏi khi chạy code này giao tiếp HC05 bị lỗi Font chữ , anh chị chỉ giúp em với.
Em cám ơn ạ... :1cool_byebye:
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/gpio.h"
#include "driverlib/interrupt.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/uart.h"
void UARTIntHandler(void)
{
uint32_t ui32Status;

ui32Status = UARTIntStatus(UART0_BASE, true); //get interrupt status

UARTIntClear(UART0_BASE, ui32Status); //clear the asserted interrupts

while(UARTCharsAvail(UART0_BASE)) //loop while there are chars
{
UARTCharPutNonBlocking(UART0_BASE, UARTCharGetNonBlocking(UART0_BASE)); //echo character
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, GPIO_PIN_2); //blink LED
SysCtlDelay(SysCtlClockGet() / (1000 * 3)); //delay ~1 msec
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 0); //turn off LED
}
}
int main(void)
{
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
GPIOPinConfigure(GPIO_PB0_U1RX);
GPIOPinConfigure(GPIO_PB1_U1TX);
GPIOPinTypeUART(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); //enable GPIO port for LED
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_2); //enable pin for LED PF2
UARTConfigSetExpClk(UART0_BASE, SysCtlClockGet(), 115200,
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));
IntMasterEnable(); //enable processor interrupts
IntEnable(INT_UART0); //enable the UART interrupt
UARTIntEnable(UART0_BASE, UART_INT_RX | UART_INT_RT); //only enable RX and TX interrupts
UARTCharPut(UART0_BASE, 'E');
UARTCharPut(UART0_BASE, 'n');
UARTCharPut(UART0_BASE, 't');
UARTCharPut(UART0_BASE, 'e');
UARTCharPut(UART0_BASE, 'r');
UARTCharPut(UART0_BASE, ' ');
UARTCharPut(UART0_BASE, 'T');
UARTCharPut(UART0_BASE, 'e');
UARTCharPut(UART0_BASE, 'x');
UARTCharPut(UART0_BASE, 't');
UARTCharPut(UART0_BASE, ':');
UARTCharPut(UART0_BASE, ' ');

while (1) //let interrupt handler do the UART echo function
{
// if (UARTCharsAvail(UART0_BASE)) UARTCharPut(UART0_BASE, UARTCharGet(UART0_BASE));
}
}
 

ctcngh

Thành Viên PIF
Có thể bạn đã cấu hình UART chưa phù hợp với module, chẳng hạn tốc độ baud.
 

denchetmatthoi

Trứng gà
em chỉnh lại tốc độ baud trong code thành 9600 giống với tốc độ baud của hco5 rồi mak ko biết sao phông chữ vẫn bị ... :-s
 

honghiep

Cố Vấn CLB
Staff member
Bạn lưu ý là với HC05 khi mới mua (ở chế độ default), tốc độ baud ở AT mode là 38400, baud giao tiếp là 9600. Nếu module đã được config ở baud khác sẽ không truyền đc data. Vì vậy tốt nhất bạn nên config là baud cho hc05 trước khi sử dụng
 

41304256

Trứng gà
Cho em hỏi là có cách nào config module HC05 mà ko dùng PL2303 ko ạ? (tại ra HSHOP mua mà ko có)
 

honghiep

Cố Vấn CLB
Staff member
Bạn có thể sử dụng bất kì mạch USB-UART nào có tốc độ baud 38400 đều được (PL2303, CP210x, FT232, ...), hoặc sử dụng COM ảo trên TivaLaunchpad đều được
 
Top