❏【PIC->C编程】
PIC
Yfw&武
IT爱好者
展开
-
MPLAB X 设置用户程序代码偏移
当编写用户代码时(用boot来引导启动),我们都需要设置用户代码的偏移。例如:boot 引导用户代码的入口地址为0x2000。下面我们需要把用户代码下载到0x2000地址处(设置如下图所示)。设置后的编译结果:可以看到代码的入口地址变成了0x2000,低优先级中断入口变成了0x2018。...原创 2020-01-14 15:59:08 · 707 阅读 · 0 评论 -
PIC18F*K80程序存储器读写(c语言实现)
写程序存储器#define tmpBuffer[64] //是要写入的数据 #define ProgrammingBuffer[64] //临时缓存//写FlashBlock(一个块为64字节)void WriteFlashBlock(void) { uint8_t i; // 1. Read the 64 bytes into RAM. //将6...原创 2020-01-13 13:32:59 · 1802 阅读 · 0 评论 -
PIC18F**K80的CAN通讯程序
单片机: PIC18F45K80关于帧ID的设置CAN的帧ID分为标志帧和扩展帧,配置寄存器如下(这里仅贴上发送ID的寄存器(TXBnSIDH)配置,接收帧ID寄存器(RXBnSIDH)配置相同):CAN通讯代码实现:#include<pic18fxx8x.h> //芯片型号//该程序实现发送缓冲器0向接收缓冲器0发送数据的自测试模式,其中接收采用中断方式//发送采...原创 2020-01-03 10:16:10 · 3524 阅读 · 0 评论 -
函数多一个参数导致指针内容发送变化(未知异常)
开发环境单片机:PIC18F45K80IDE: MPLAB X IDE未知异常//输出正常int strcmp_new(unsigned char *src){ putch(*(src)); putch(*(src+1)); putch(*(src+2)); putch(*(src+3)); } char arr=[3...原创 2019-12-07 13:52:59 · 155 阅读 · 0 评论 -
MPLAB X IDE中使用 printf()会出现一系列问题
开发环境单片机:PIC18F45K80IDE: MPLAB X IDEprintf异常原因求解。1、如下 printf成功向串口打印了数据#putch函数实现,printf需要void putch(char data) { while(!TX1IF) continue; TXREG1=data;}void test(){ printf("P...原创 2019-12-07 09:24:35 · 1492 阅读 · 1 评论 -
char *str与 char str[] 的区别?
代解决问题:下面这样操作发送字符串失败:```c char *str="rxsuc"; Send_Str(str);下面这样操作发送字符串成功: char str[]="rxsuc"; Send_Str(str);为什么会这样?求解。开发环境如下IDE: MPLAB X IDEMCU: PIC18F45K80代码如下串口发送函数如下:void Se...原创 2019-12-06 15:42:17 · 391 阅读 · 0 评论 -
USART接收数据,以回车结束
单片机:PIC18F45K80实现功能:接收发来的以回车换行(0x0D,0X0A)结尾的串口数据。#define RX_SIZE 100 //接收缓存区大小#define FINISH 1 bit RX_flag; //接收完成标志unsigned char RX[RX_SIZE]; //接收缓存const char *prx_size=RX; unsigned char...原创 2019-12-06 15:31:00 · 2472 阅读 · 1 评论