Pic16f1828 1829串口收发

发布者:知识阁楼最新更新时间:2020-08-28 来源: eefocus关键字:Pic16f1828  串口收发 手机看文章 扫描二维码
随时随地手机看文章

#include 

// PIC16f1828 / PIC16f1828      8M

 

unsigned char error=0x00; 

bit Q=0; 

unsigned data;

void interrupt isr(void) // 中断函数

{

    unsigned char Temp;

    if(RCIF&&RCIE)

    {

        Q = 1;

        while(FERR)      {error=RCREG; Q=0;};   

        while(OERR)      { CREN=0 ;  CREN=1 ; error=RCREG; Q=0;}

        

        TXREG = RCREG;  //收到的数据立马进行回显

    }

}

void Uart_init() //UART初始

{

   // SCS FOSC; SPLLEN disabled; IRCF 8MHz_HF; 

    OSCCON = 0x70;

    // LFIOFR disabled; HFIOFL not2percent_acc; OSTS intosc; PLLR disabled; HFIOFS not0.5percent_acc; HFIOFR disabled; MFIOFR disabled; T1OSCR disabled; 

    OSCSTAT = 0x00;

    // TUN 0x0; 

    OSCTUNE = 0x00;

    // Set the secondary oscillator

    

#ifndef USE_DEAFULT_TX

    APFCON0bits.TXCKSEL = 1; //TX引脚使用1 = RC4  ------- 第二功能管脚

    TRISCbits .TRISC4 =  0;

#else

    APFCON0bits.TXCKSEL = 0; //TX引脚使用1 = RB7  --------原来的LED-FULL

    TRISBbits .TRISB7 =  0;    

#endif

    

#ifdef USE_DEAFULT_RX    

    APFCON0bits.RXDTSEL = 0; //RX引脚使用0 = RB5     

    TRISBbits .TRISB5 =  1;

    ANSELBbits.ANSB5 = 0;  ;  //关闭RB5的模拟输入功能

#else

    APFCON0bits.RXDTSEL = 1;   //RX引脚使用0 = RC5       第二功能管脚

    TRISCbits .TRISC5 =  1;

    //ANSELCbits.ANSC5 = 0;  ;  //关闭RB5的模拟输入功能

#endif      

    

    

    //8mhz晶体  波特率设置, datasheet里面有线程的参数表格

    SPBRG=51;//?9600,8M??

    BRGH=1; //

    

    SYNC=0;

    SPEN=1; //串口使能

    TXEN=1; //USART 发送使能

    TXIE=0; //关发送中断

    RCIE=1; //开接收中断

    CREN=1; //接收允许

    PEIE = 1; //开外围设备中断

    GIE = 1;

}

 

void main() 

{

Uart_init();

    while(1){}

}


关键字:Pic16f1828  串口收发 引用地址:Pic16f1828 1829串口收发

上一篇:pic16f877a的AD实验学习
下一篇:PIC16F887 单片机 PROTEUS 仿真 C程序 温控电机

推荐阅读最新更新时间:2024-11-11 22:29

STM32F407的串口采用DMA收发数据
环境: 主机:WIN8 开发环境:MDK5.13 mcu: stm32f407VGT6 说明: 之前用STM32F103实现DMA收发串口数据,现在项目中采用STM32F407,所以将此机制移植到F4上。 STM32F103上用DMA收发串口数据文章: STM32的串口采用DMA方式发送数据测试 STM32的串口采用DMA方式接收数据测试 源代码: 串口初始化代码: /* * 初始化串口 / static void init_uart(void) { //定义中断结构体 NVIC_InitTypeDef NVIC_InitStructure ; //定义IO初始化结构体 GPIO_Init
[单片机]
STM32HAL库中断模式串口初始化收发数据
hal库里面路径:STM32Cube_FW_L0_V1.10.0\Projects\STM32L053C8-Discovery\Examples \UART\UART_TwoBoards_ComIT 工程是串口1中断收发模式配置 UART_HandleTypeDef UartHandle; //串口结构体变量 UartHandle.Instance = USARTx; //初始化串口实例 USART1 UartHandle.Init.BaudRate = 9600; //设置波特率 UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved