本帖最后由 渔夫的烟斗 于 2017-4-9 07:28 编辑
file:///C:/Users/YING/AppData/Local/Temp/snap_screen_20170409071121.pngfile:///C:/Users/YING/AppData/Local/Temp/snap_screen_20170409071121.png
1.查询方式:是对哪个REG进行查询“
2.中断方式:中断服务号是多少”
3.波特率设置是不是也同STC一样要先设定定时器“
blog
- #include "pic.h"
- #include
- __CONFIG (CP_OFF&WDTE_OFF& BOREN_OFF&PWRTE_OFF &FOSC_HS&WRT_OFF&LVP_OFF&CPD_OFF);
- //-------------------------------------------------------------------------
- #define uint unsigned int
- #define uchar unsigned char
- //-------------------------------------------------------------------------
- //串口接收、发送变量
- void delay10ms(void);
- void delay10ms_x(unsigned char x);
- char strSentData[20]="Hello World!\r";
- char m=0; // i做为访问数组的下标
- main()
- {
- char i=0;
- SPBRG=25;
- SPBRGH=0;
-
- SYNC=0; // 选择异步模式
- BRGH=0; // 低波特率方式
- BRG16=0; // 高波特率方式
- //BRGH=1; // 高波特率方式
- TXEN=1; // 发送使能
- TX9=0; // 不发送第9位
- SPEN=1; // USART使能
- // 以上几条语句是分别对每位赋值,目的使初学者看清楚每位功能
- // 实际项目中建议用以下两条语句替代,效率更高
- //RCSTA=0b10000000;
- //TXSTA=0b00100100;
- TXREG='A'; // 把要发送的数据放到TXREG中,USART模块开始自动发送
- while(1)
- {
- while(strSentData[i]!='\0') // 当没到字符串结束时
- {
- TXREG=strSentData[i];
- while(TRMT!=1) // 不为一说明发送未完成,则等待
- {
- }
- i++;
- }
- i=0;
- }
- }
网上找的一段代码。
首先没有发现波特率的具体设定,只说高低波特率。。在PDF手册有看到一个自动波特率,不知道是不是这么用的
二也没有发现定时器,即波特率发生器,难道这个PIC已经不需要这个了?
*******************************************************************************
PIC16f串口通信程序_百度文库
这边的程序却有波特率的具体值的设定。
两者有什么不一样么?
|