說實話STM8確實用起來比較方便,雖然網(wǎng)上的資料不多,但是在各大論壇都可以找到自己想要的東西,下面說說我在使用時遇到的問題和應該注意的事項,,
我在使用是用的是庫函數(shù)。
1:先配置端口:
GPIO_Init(LEDS_PORT, ( TX ), GPIO_MODE_OUT_PP_LOW_FAST);
GPIO_Init(LEDS_PORT, ( RX ) , GPIO_MODE_IN_PU_NO_IT );
注意:在開始的時后程序?qū)懲旰笠恢背霈F(xiàn)接收不到數(shù)據(jù),在網(wǎng)上問了許多人,然后才發(fā)先原來是沒有把,接收端口配置成接收狀態(tài),也有人說不用配置,直接用就接收到數(shù)據(jù),但是我的實在實現(xiàn)不了。
2:函數(shù)初始化:
void Uart_Init(void)
{
//UART1_DeInit();
UART1_Init((u32) 9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1,
UART1_PARITY_NO , UART1_SYNCMODE_CLOCK_DISABLE , UART1_MODE_TXRX_ENABLE);
UART1_ITConfig(UART1_IT_RXNE_OR,ENABLE );
UART1_Cmd(ENABLE );
}
注意:這個初始化的函數(shù)應在時鐘函數(shù)初始化之后,因為Uart_Init():在調(diào)用時使用了關(guān)于時鐘的一些參數(shù),因為我們經(jīng)常會在工程中切換函數(shù),這樣會對發(fā)送和接收數(shù)據(jù)造成影響。。
3 :接收 ,我么可以在主函數(shù)中接收,也可以在串口中斷中接收數(shù)據(jù)。。
@far @interrupt void UART_RI (void)
{
disableInterrupts();
if(UART1_GetITStatus(UART1_IT_RXNE )!= RESET)
{
Res =UART1_ReceiveData8()-0x30;
}
//UART1_SendByte( keycounter);
UART1_SendByte(1);
UART1_SendByte(2);
UART1_SendByte(3);
UART1_SendByte(4);
//data_Analysis_1();
enableInterrupts();
}
這是我在使用時遇到的一些問題