PIC18F45K80 USART

来源:互联网 发布:mac常用快捷键 编辑:程序博客网 时间:2024/06/05 09:26

初期参考了三篇文章

1、PIC18F45K80单片机串口调试总结

http://blog.csdn.net/sandyde123/article/details/48091535


2、用示波器 查看波特率是多少?

http://blog.csdn.net/androidolblog/article/details/47659149


3、关于示波器测485串口波特率的使用方法总结

http://blog.csdn.net/lianxue1986/article/details/50385384


根据手册





/*  * File:   Main.c * Author: Alex * 单片机型号:PIC18F45k80 -I/PT * IDE:MPLAB X   * 编译器:HI-TECH PICC18 * 晶振:16MHz * 引脚:TX1 RC6 * Created on 2017年2月28日, 下午2:34 */// PIC18F45K80 Configuration Bit Settings// 'C' source line config statements#include <htc.h>#include <p18f45k80.h>//配置位#pragma config CONFIG1L = 0x1D//__CONFIG(1, RETEN_OFF & INTOSCSEL_HIGH & SOSCSEL_HIGH & XINST_OFF);//因为我用的是外部时钟源,16MHz,配置为HS2//0011 = HS1, HS 振荡器(中等功耗, 4 MHz-16 MHz)//0010 = HS2, HS 振荡器(高功耗, 16 MHz-25 MHz)#pragma config CONFIG1H = 0x2//__CONFIG(2, FOSC_HS2 & PLLCFG_OFF & FCMEN_OFF & IESO_OFF);#pragma config CONFIG2L = 0x7F//__CONFIG(3, PWRTEN_OFF & BOREN_SBORDIS & BORV_3 & BORPWR_ZPBORMV);#pragma config CONFIG2H = 0x7F//__CONFIG(4, WDTEN_SWDTDIS & WDTPS_1048576);#pragma config CONFIG3H = 0x89//__CONFIG(5, CANMX_PORTB & MSSPMSK_MSK7 & MCLRE_ON);#pragma config CONFIG4L = 0x91//__CONFIG(6, STVREN_ON & BBSIZ_BB2K);#pragma config CONFIG5L = 0xF//__CONFIG(7, CP0_OFF & CP1_OFF & CP2_OFF & CP3_OFF);#pragma config CONFIG5H = 0xC0//__CONFIG(8, CPB_OFF & CPD_OFF);#pragma config CONFIG6L = 0xF//__CONFIG(9, WRT0_OFF & WRT1_OFF & WRT2_OFF & WRT3_OFF);#pragma config CONFIG6H = 0xE0//__CONFIG(10, WRTC_OFF & WRTB_OFF & WRTD_OFF);#pragma config CONFIG7L = 0xF//__CONFIG(11, EBTR0_OFF & EBTR1_OFF & EBTR2_OFF & EBTR3_OFF);#pragma config CONFIG7H = 0x40//__CONFIG(12, EBTRB_OFF);/* *  */int main(int argc, char** argv) {    /*串口初始化*/SPBRGH1=0;SPBRG1 = 103;  //9600TXSTA1bits.BRGH=0;BAUDCON1bits.BRG16 = 1;//??8??????    TXSTA1bits.SYNC=0;RCSTA1bits.SPEN=1;   TXSTA1bits.TXEN=1;   /*串口初始化结束*/while(1){         TXREG1='V';        while(PIR1bits.TXIF == 0);          TXREG1='=';        while(PIR1bits.TXIF == 0);          }}

XINST:扩展指令集使能位
1 = 使能指令集扩展和变址寻址模式
0 = 禁止指令集扩展和变址寻址模式(传统模式)

#pragma config CONFIG1L = 0x1D//__CONFIG(1, RETEN_OFF & INTOSCSEL_HIGH & SOSCSEL_HIGH & XINST_OFF);
这里是够开启扩展指令集,输出结果是有差别的,在这里栽过跟头。


Project中需要两个头文件,需添加。



波特率9600



104.0us 




0 0
原创粉丝点击