OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1977|回复: 1

串口调试

[复制链接]

8

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2017-9-13
在线时间
18 小时
发表于 2018-2-27 11:38:02 | 显示全部楼层 |阅读模式
1金钱
#include "stm32f10x.h"
#define    P5J        GPIO_Pin_6
int PP;
void Delay(u32 count)
{
u32 i=0;
for(;i<count;i++);
}
//void NVv(void)
//{
//            NVIC_InitTypeDef AA;
//        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
//   AA.NVIC_IRQChannel = USART1_IRQn;
//        AA.NVIC_IRQChannelPreemptionPriority=2 ;//抢占优先级 3
//        AA.NVIC_IRQChannelSubPriority = 2; //子优先级 3
//        AA.NVIC_IRQChannelCmd = ENABLE; //IRQ 通道使能
//        NVIC_Init(&AA); //根据指定的参数初始化 VIC 寄存器
//}
void lykey(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        //① 串口时钟使能, GPIO 时钟使能,复用时钟使能
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能 USART1, GPIOA 时钟以及复用功能时钟
        //②串口复位
        USART_DeInit(USART1); //复位串口 1
        //③GPIO 端口模式设置
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
        GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化 PA9
        //USART1_RX PA.10
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
        GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化 PA10
        //④串口参数初始化
        USART_InitStructure.USART_BaudRate = 9600;//一般设置为 9600;
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为 8 位数据格式
        USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位
        USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位
        USART_InitStructure.USART_HardwareFlowControl
        = USART_HardwareFlowControl_None;//无硬件数据流控制
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式
        USART_Init(USART1, &USART_InitStructure); //初始化串口
        //⑤初始化 NVIC
                 // NVv();
        //⑤开启中断
        //USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启中断
        //⑥使能串口
        USART_Cmd(USART1, ENABLE); //使能串口
}

void led1(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); //使能 PB,PE 端口时钟
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度为 50MHz
        GPIO_InitStructure.GPIO_Pin = P5J; //LED1-->PE.5 端口配置, 推挽输出
        GPIO_Init(GPIOE, &GPIO_InitStructure); //推挽输出 , IO 口速度为 50MHz
        GPIO_SetBits(GPIOE,P5J); //PE.5 输出高
}
int main(void)
{
    Delay(3000000);                 //开始延时
        led1();
        GPIO_ResetBits(GPIOE,P5J); //是否运行
        lykey();       
        while(1)   
        {
                USART_SendData(USART1,0X15);//向串口 1 发送数据
                while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
                 Delay(3000);
        }
}
1串口发送数据到电脑端能正常发送   如果按下板子上的复位键之后  整个程序就不运行 了,我在初始化的时候加了一个LED灯
2电脑端时串口调试助手

3如果关闭调试助手,复位之后,在打开就能运行了


QQ:2675883147


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-3-2 02:00:05 | 显示全部楼层
是我们开发板么? 你的串口调试助手,是我们的么?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 16:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表