標(biāo)題:
STM8模擬串口接收,通過(guò)IO口接收,調(diào)用物理串口發(fā)送調(diào)試程序
[打印本頁(yè)]
作者:
老K。
時(shí)間:
2021-3-15 15:38
標(biāo)題:
STM8模擬串口接收,通過(guò)IO口接收,調(diào)用物理串口發(fā)送調(diào)試程序
單片機(jī)源程序如下:
#include"iostm8s103F3.h"
unsigned char rdata;
unsigned char bit=0;
unsigned char flag1=0;
unsigned char flag2=0;
unsigned char number=0;
unsigned char bit_begin=0;
void RXD_data(void)
{
}
void GPIO_Init(void)
{
PD_DDR &=~(1<<3);
PD_CR1 |= (1<<3);
PD_CR2 |= (1<<3);
EXTI_CR1 |=0x00;
}
void CLK_Init(void)
{
CLK_SWR =0xE1;
CLK_CKDIVR=0X00;
}
void Init_UART1(void)
{
UART1_CR1=0x00;
UART1_CR2=0x00;
UART1_CR3=0x00;
UART1_BRR2=0x0b;
UART1_BRR1=0x08;
UART1_CR2 =0x2c;//允許接收,發(fā)送,開接收中斷
}
void TMI2_Init(void) //定時(shí)器2初始化
{
TIM2_PSCR = 0x00; //16分頻 1MHZ 1us
TIM2_ARRH = 417 >> 8; //自動(dòng)裝
TIM2_ARRL = 417;
TIM2_CNTRH=0x00; //初值
TIM2_CNTRL=0x00;
TIM2_EGR=0X01; //允許產(chǎn)生更新標(biāo)志
TIM2_CR1 |= 0x80; //開啟定時(shí)器
TIM2_IER |= 0x01; //允許中斷
}
#pragma vector = 8 // IAR中的中斷號(hào),要在STVD中的中斷號(hào)上加2
__interrupt void RXDInterrupt( void )
{
PD_CR2 &= ~( 1 << 3 ); //禁止外部中斷
TIM2_CR1 = 0x81;
flag2=1;
}
#pragma vector = 0x0f
__interrupt void TIM2_UPD_OVF_TRG_BRK_IRQHandler(void)
{
TIM2_SR1&=~(1<<0);//清空標(biāo)志位
bit_begin++;
if(bit_begin>=5)
{
number++;
if(number==2 && flag2==1)
{
if( (( PD_IDR & 0x08) == 0x08 ) && (bit<8) )
{
rdata>>=1;
rdata |= 0x80;
}
else if( (( PD_IDR & 0x08) == 0x00 ) && (bit<8) )
{
rdata>>=1;
}
bit++;
if( ((PC_IDR & 0x08) == 0x08 ) && (bit==9) )
{
bit=0;
flag2=0;
UART1_DR=rdata;
}
}
if(number==4)
{
number=0;
}
}
if(bit_begin==40)
{
bit_begin=0;
TIM2_CR1 = 0x80;
PD_CR2 |= ( 1 << 3 );
}
}
main()
{
CLK_Init();
TMI2_Init();
Init_UART1();
GPIO_Init();
asm("rim");//開中斷,sim為關(guān)中斷
while (1);
}
復(fù)制代碼
所有資料51hei提供下載:
STM8模擬串口接收.zip
(239.5 KB, 下載次數(shù): 21)
2021-3-15 15:37 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1