久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3223|回復: 2
收起左側

PIC16F1455 Flash不能擦除和寫入

[復制鏈接]
ID:102111 發表于 2016-1-10 11:42 | 顯示全部樓層 |閱讀模式
本帖最后由 Antecer 于 2016-1-10 11:49 編輯

以下是我用于測試的代碼:
  1. #include <xc.h>

  2. // CONFIG1
  3. #pragma config FOSC = INTOSC    // Oscillator Selection Bits (INTOSC oscillator: I/O function on CLKIN pin)
  4. #pragma config WDTE = OFF       // Watchdog Timer Enable (WDT disabled)
  5. #pragma config PWRTE = OFF      // Power-up Timer Enable (PWRT disabled)
  6. #pragma config MCLRE = ON       // MCLR Pin Function Select (MCLR/VPP pin function is MCLR)
  7. #pragma config CP = OFF         // Flash Program Memory Code Protection (Program memory code protection is disabled)
  8. #pragma config BOREN = ON       // Brown-out Reset Enable (Brown-out Reset enabled)
  9. #pragma config CLKOUTEN = OFF   // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)
  10. #pragma config IESO = OFF       // Internal/External Switchover Mode (Internal/External Switchover Mode is disabled)
  11. #pragma config FCMEN = OFF      // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is disabled)

  12. // CONFIG2
  13. #pragma config WRT = OFF        // Flash Memory Self-Write Protection (Write protection off)
  14. #pragma config CPUDIV = NOCLKDIV// CPU System Clock Selection Bit (NO CPU system divide)
  15. #pragma config USBLSCLK = 48MHz // USB Low SPeed Clock Selection bit (System clock expects 48 MHz, FS/LS USB CLKENs divide-by is set to 8.)
  16. #pragma config PLLMULT = 3x     // PLL Multipler Selection Bit (3x Output Frequency Selected)
  17. #pragma config PLLEN = ENABLED  // PLL Enable Bit (3x or 4x PLL Enabled)
  18. #pragma config STVREN = ON      // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will cause a Reset)
  19. #pragma config BORV = LO        // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
  20. #pragma config LPBOR = OFF      // Low-Power Brown Out Reset (Low-Power BOR is disabled)
  21. #pragma config LVP = OFF        // Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming)

  22. #define UINT8 unsigned char
  23. #define UINT16 unsigned int
  24. #define NV_MEM_SIZE 32
  25. extern const unsigned char NVMEM[NV_MEM_SIZE];
  26. #define NV_ADDRESS (0x2000U - NV_MEM_SIZE)
  27. const UINT8 NVMEM[NV_MEM_SIZE]@NV_ADDRESS = {
  28.     0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b,
  29.     0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13,
  30.     0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b,
  31.     0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23
  32. };
  33. UINT8 GetData[NV_MEM_SIZE];

  34. void ReadFlash(UINT16 FlashAddr, UINT8 *Data, UINT8 DataLength) {
  35.     PMADR = FlashAddr; //讀取數據的首地址
  36.     for (UINT8 i = 0; i < DataLength; i++) //循環讀取連續數據
  37.     {
  38.         CFGS = 0;
  39.         RD = 1;
  40.         NOP();
  41.         NOP();
  42.         *Data = PMDATL; //取數據低8位存入數組
  43.         PMADR++;
  44.         Data++;
  45.     }
  46. }
  47. void UnlockFlash(){
  48.     PMCON2 = 0x55;
  49.     PMCON2 = 0xAA;
  50.     WR = 1;
  51.     NOP();
  52.     NOP();
  53. }
  54. void EraseFlash(UINT16 address){
  55.     OSCCON = 0b11101100;        //切換到1MHz x 3PLL;
  56.     GIE = 0;
  57.     PMCON1bits.CFGS = 0;
  58.     PMADR = address;
  59.     PMCON1bits.FREE = 1;         //啟用程序閃存擦除啟用
  60.     PMCON1bits.WREN = 1;         //允許編程
  61.     UnlockFlash();              //解鎖序列
  62.     PMCON1bits.WREN = 0;         //禁止編程
  63.     GIE = 1;
  64. }
  65. void main(void) {
  66.     ReadFlash(NV_ADDRESS,GetData,NV_MEM_SIZE);
  67.     EraseFlash(NV_ADDRESS);
  68.     while (1);
  69. }
復制代碼



QQ截圖20160110111812.jpg



回復

使用道具 舉報

ID:102111 發表于 2016-1-10 21:03 | 顯示全部樓層
等了一天了,還是沒得到解答 = =
回復

使用道具 舉報

ID:78835 發表于 2023-11-28 08:12 | 顯示全部樓層
解決了嗎?我也遇到了類似的問題,我用PIC16F1825,可以寫入數據,也可以讀出數據,就是不能擦除數據。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美 日韩 国产 在线 | 亚洲欧美一区二区三区国产精品 | 欧美日韩一 | 中文字幕综合 | 国产中文原创 | 欧美日韩综合视频 | 欧美性受xxxx白人性爽 | 久久精品欧美一区二区三区麻豆 | 国产精品久久久久久久久久久免费看 | www.亚洲视频 | 国产日韩亚洲欧美 | 免费观看黄a一级视频 | 综合色婷婷 | 亚洲激情综合 | 国产伦精品一区二区三区高清 | 国产网站在线播放 | 久久一 | 成人国产精品视频 | 少妇一区在线观看 | 在线观看免费黄色片 | 亚洲性在线 | 欧美成年视频 | 日韩综合一区 | 精品中文字幕在线观看 | 中文字幕在线观看 | 亚洲香蕉 | 国产一级黄色网 | 日韩欧美精品一区 | 中文字幕亚洲一区二区三区 | 91社影院在线观看 | 99久久国产免费 | 成人精品免费视频 | 一区2区 | 欧美日韩亚洲系列 | 午夜色播 | 午夜影院在线免费观看视频 | 韩三级在线观看 | 国产人成精品一区二区三 | 亚洲精品久久久一区二区三区 | 久久精品免费观看 | 中文字幕亚洲一区 |