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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2573|回復: 1
打印 上一主題 下一主題
收起左側

基于STM32藍牙打印機源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:387744 發表于 2019-7-8 16:34 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include "motor.h"
#include "delay.h"
#include "timer.h"
#include "printer.h"
#include "led.h"
#include "usart.h"
#include "uart_font.h"
#include "flash.h"
#include "dma.h"
#include <string.h>
u8 const test_str[]="\r\n\

void updata_font()//更新字庫
{
        u8 i;
        u8 group = 0;
        u32 write_addr = 0;
        
        LED1 = 0;
        uart1_printf("flash init ok!\n");
        
//         spi_flah_erase_chip();
        for (i=0; i<148; i++)
        {
                spi_flash_erase_sector(i);
        }
         
         uart1_printf("flash erase ok!\n");
         
         while (1)
         {
                 if (font_buffer[group].uart_rev_len)
                 {
                         spi_flash_write_nocheck((u8*)font_buffer[group].data_buf, write_addr,
                                                                                 font_buffer[group].uart_rev_len);
                        
//                         uart1_printf("pg_addr:%-6d ok\n",write_addr);
                        
                         write_addr += font_buffer[group].uart_rev_len;
                        
                         font_buffer[group].uart_rev_len = 0;
                        
                         group = !group;
                 }
               
                if (key_scan() == 1)
                {
                        break;
                }
         }
}

int main()
{
        u32 cnt = 0;
        u16 rx_flg = 0;
        
        init_delay(72);
        
        init_motor_gpio();
        init_printer_gpio();
        
        usart2_init(36, 9600);        //串口2接 藍牙模塊
         bluetooth_swi(1);//打開藍牙模塊
        
        DMAx_Config(DMA1_Channel7, (u32)&USART2->DR, (u32)(uart_buffer.tx_buf));
        
        init_usart1(72, 921600);//串口1 燒錄字庫
        DMAx_Config(DMA1_Channel4, (u32)&USART1->DR, (u32)uart1_tx_buf);
        
        init_key();
        init_led();
        init_timer3_int(1100-1,72-1);//800us溢出一次
        spi_flash_init();
        
        if (spi_flash_read_id() != W25Q64)
        {
                uart_printf("flash error!\n");
               
                while (1)
                {
                        ;
                }
        }               
        
        if (key_scan() == 1)
        {
                updata_font();
        }
        else
        {
                while (1)
                {
                        if (key_scan() == 1)//按下按鍵,繼續往下執行
                        {
                                break;
                        }
                }
        }
        BUZZ = 1;
        delay_ms(200);
        BUZZ = 0;
         uart_printf("The printer is ready.\n");
        uart_buffer.rx_len = rx_flg;
        while (1)
        {
                printer_updata();//打印機更新數據        
                printer_updata_pic();
               
                if (uart_buffer.rx_len != rx_flg)//防止重復執行這里
                {
                        if (uart_buffer.rx_len > 0)        //收到數據  
                        {
                                uart_printf("OK:printing ...\r\n");
                                bluetooth_data_formatting((u8*)uart_buffer.rx_buf);
                                uart1_printf("%s", uart_buffer.rx_buf);
                                printer_status = PRINT_TEXT;
                                print_updata_text_flg = 1;
                                printer_updata();                //打印機更新數據        
                                
                                TIM3->EGR = 1<<0;                /* 軟件更新 */
                                TIM3->SR = 0;                        /* 清0狀態標識 */

                                TIM3->CR1 |= 0x01;
                        }
                        rx_flg = uart_buffer.rx_len;
                }

                if ((TIM3->CR1 & 1) == 0)//如果當前沒有打印
                {
                        if (++cnt == 600000)
                        {
                                cnt = 0;
                        }
                        
                        LED1 = cnt<60000 ? 0 : 1;
                        
                        if (key_scan() == 1)
                        {
                                strcpy((char*)uart_buffer.rx_buf, (char*)test_str);

                                bluetooth_data_formatting((u8*)uart_buffer.rx_buf);
                                uart_printf("OK:printing ...\r\n");
                                
                                printer_status = PRINT_TEXT;
                                print_updata_text_flg = 1;
                                printer_updata();                //打印機更新數據        
                                
                                TIM3->EGR = 1<<0;                /* 軟件更新 */
                                TIM3->SR = 0;                        /* 清0狀態標識 */

                                TIM3->CR1 |= 0x01;
                        }
                }
        }//end while(1)
}



藍牙打印機總程序.7z

274.01 KB, 下載次數: 67, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2019-7-8 20:05 | 只看該作者
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费九九视频 | 岛国毛片在线观看 | 国产成人免费在线 | 污免费网站 | 黄网免费| 亚洲欧美日韩在线 | 欧美日韩综合 | 国产精品久久久久久久岛一牛影视 | 高清国产一区二区 | 日韩av一区二区在线观看 | 亚洲精品久久嫩草网站秘色 | 精品视频在线一区 | 一区二区三区四区国产精品 | 国产精品精品视频一区二区三区 | 日韩理论电影在线观看 | 国产一区二区麻豆 | 日本精品一区二区三区在线观看视频 | 午夜欧美 | 人人看人人爽 | 国产精品久久福利 | 欧洲免费毛片 | 国产精品高潮呻吟久久av野狼 | 拍戏被cao翻了h承欢 | 综合色播 | 久久国产精品免费一区二区三区 | 欧美日韩亚洲在线 | 最新国产福利在线 | 欧美性成人 | 久久国内精品 | 波多野吉衣久久 | 91视视频在线观看入口直接观看 | 性色av一区二区三区 | 自拍偷拍精品 | 色黄爽 | 欧美性生活视频 | av资源网站 | 久久中文免费视频 | 中文字幕不卡在线观看 | 一区二区视频在线观看 | 99在线免费视频 | 亚洲精品一区二区三区蜜桃久 |