|
這個(gè)是主要的函數(shù): 副函數(shù)見附件 為什么控制不了。串口助手調(diào)輸出數(shù)字,并沒有波形輸出?
單片機(jī)源程序:
int main(void)
{
int x;
u16 t;
u16 len;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
uart_init(115200); //串口初始化為115200
LED_Init(); //LED燈初始化
TIM2_PWM_Init(99,71);// 頻率10Khz 周期100us
LED1=0; //點(diǎn)亮DS1
while(1)
{
if(USART_RX_STA&0x8000)//不懂
{
len=USART_RX_STA&0x3fff;//不懂
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//向串口1發(fā)送數(shù)據(jù)
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待發(fā)送結(jié)束
}
x=((USART_RX_BUF[0]-48)*100+(USART_RX_BUF[1]-48)*10+((USART_RX_BUF[2])-48)*1);// 把串口接受到的ASC碼轉(zhuǎn)換成十進(jìn)制數(shù)
printf("\r\n%d\n",x);//用串口1輸出X的值 當(dāng)向串口1發(fā)送的為三位字符時(shí)X才正確
USART_RX_STA=0;
}
TIM_SetCompare4 (TIM2,x); //輸出對應(yīng)占空比
}
}
|
|