找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 814|回复: 0
打印 上一主题 下一主题
收起左侧

32串行口上传

[复制链接]
跳转到指定楼层
楼主
ID:358409 发表于 2018-6-25 13:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "stm32f10x.h"

u8 a[]="Current time is 00:00:00\r\n";
u8 count_10ms;
u8 hour,min,sec;
       
void delay(uint32_t n)         
{
  uint32_t i;
        for(i=n;i>0;i--);
}
void GPIO_Configration(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;  
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
          GPIO_Init(GPIOD, &GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
          GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IN_FLOATING;
          GPIO_Init(GPIOD, &GPIO_InitStructure);                        
}
void USART2_Configration(void)
{
        USART_InitTypeDef        USART_InitStructure;

        RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);

        GPIO_PinRemapConfig(GPIO_Remap_USART2,ENABLE);

    USART_InitStructure.USART_BaudRate=9600;
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;
        USART_InitStructure.USART_StopBits =USART_StopBits_1;
        USART_InitStructure.USART_Parity =USART_Parity_No;
        USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
        USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;

        USART_Init(USART2, &USART_InitStructure);

        USART_Cmd(USART2, ENABLE);   

}
void U2_PutChar(u8 ch)
{
   USART_GetFlagStatus(USART2, USART_FLAG_TC);
   USART_SendData(USART2, ch);
   while(USART_GetFlagStatus(USART2, USART_FLAG_TC)==RESET)       
   {}  
}
void U2_Printf(u8 *pBuff)
{
   while(*pBuff!='\0')
   {
             U2_PutChar(*pBuff++);
   }
}
//定时器移植
void NVIC_Configration(void)
{
        NVIC_InitTypeDef aaa;
        aaa.NVIC_IRQChannel = TIM3_IRQn;
        aaa.NVIC_IRQChannelPreemptionPriority = 0;
        aaa.NVIC_IRQChannelSubPriority = 2;
        aaa.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&aaa);
}  
void TIMER3_Init()
{
        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

        TIM_TimeBaseStructure.TIM_Prescaler=71;
        TIM_TimeBaseStructure.TIM_Period=10000-1;
        TIM_TimeBaseStructure. TIM_CounterMode=        TIM_CounterMode_Up;
        TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

        TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
        TIM_Cmd(TIM3, ENABLE); //开启时钟
}


int main()
{
        GPIO_Configration();
        USART2_Configration();               
        NVIC_Configration();
        TIMER3_Init();
        while(1)
        {
                   a[16]=hour/10+0x30;
                   a[17]=hour%10+0x30;

                   a[19]=min/10+0x30;
                   a[20]=min%10+0x30;

                   a[22]=sec/10+0x30;
                   a[23]=sec%10+0x30;
                  
                   U2_Printf(a);
                   delay(1000000);
        }
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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