您的位置 首页 观点

STM32串口通讯和I/O口简略代码

includestm32f10x_libh>includesyshincludedelayhincludeusarthincludeledhintmain(void){u8k;

#include
#include “sys.h”
#include “delay.h”
#include “usart.h”
#include “led.h”
int main(void)
{
u8 k; //点亮的灯位数
u8 i;
Stm32_Clock_Init(9); //体系时钟初始化
delay_init(72); //延时初始化
uart_init(72,9600); //串口初始化
led_init(); //灯I/O装备初始化
while(1)
{
if(USART_RX_STA&0x80) //承受到数据判别
{
printf(“you send massage is :”);
for(i=0;i<(USART_RX_STA&0x3f);i++)
{
USART1->DR=USART_RX_BUF[i]; //把承受到的数据传给电脑
k=USART_RX_BUF[2]-0x30; //承受到要开发的灯泡值
}
USART_RX_STA=0; //承受位清零
}
if(k==1)LED1=0; //判别点亮那个灯
if(k==2)LED2=0;
if(k==3)LED3=0;
if(k==4)LED4=0;
if(k==5)LED5=0;
if(k==6)LED6=0;
if(k==7)LED7=0;
if(k==8)LED8=0;
}
}

//————————————-灯装备库函数—————

#include
#include “led.h”
void led_init()
{
RCC->APB2ENR|=1<<3; //时能PORTB时钟
GPIOB->CRL&=0x00000000; //清空寄存器值
GPIOB->CRL|=0x33333333; //推挽输出
GPIOB->ODR=0xffff;
}
#ifndef _led_h
#define _led_h
void led_init(void);
#define LED1 PBout(0)
#define LED2 PBout(1)
#define LED3 PBout(2)
#define LED4 PBout(3)
#define LED5 PBout(4)
#define LED6 PBout(5)
#define LED7 PBout(6)
#define LED8 PBout(7)
#endif

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/guandian/318383.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部