標(biāo)題:
stm32向串口發(fā)送 字符 輸出對(duì)應(yīng)占空比的PWM波
[打印本頁(yè)]
作者:
823090373
時(shí)間:
2017-7-24 09:41
標(biāo)題:
stm32向串口發(fā)送 字符 輸出對(duì)應(yīng)占空比的PWM波
學(xué)習(xí)串口中斷 和PWM波的簡(jiǎn)單實(shí)驗(yàn)
向串口發(fā)送 字符 輸出對(duì)應(yīng)占空比的PWM波
單片機(jī)源程序如下:
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "exti.h"
#include "beep.h"
#include "timer.h"
/************************************************
點(diǎn)亮DS2
向串口一發(fā)送0-100三個(gè)字符
TIM2 CH4 PA3口 輸出對(duì)應(yīng)占空比
************************************************/
int main(void)
{
int x;
u16 t;
u16 len;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
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;
……………………
…………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
串口輸出對(duì)應(yīng)占空比PWM.rar
(297.7 KB, 下載次數(shù): 69)
2017-7-24 16:19 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
喵星人
時(shí)間:
2017-12-4 16:24
這個(gè)能用于4路輸出嗎
作者:
wjx900
時(shí)間:
2018-11-22 09:17
學(xué)習(xí)了,謝謝!
作者:
zheng2min
時(shí)間:
2018-11-22 12:16
好東西,學(xué)習(xí)了。
作者:
nihaobu
時(shí)間:
2019-11-26 11:25
看看,學(xué)習(xí)下。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1