日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

赛元单片机SC92F732x系列printf函数构造[以7321为例]

發布時間:2023/12/31 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 赛元单片机SC92F732x系列printf函数构造[以7321为例] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先放效果圖:


再放代碼部分:

首先本代碼依據賽元官方DEMO代碼所作修改,官方地址:賽元芯片官方DEMO

我所修改“”Uart_Init.c部分:

#include "H/Function_Init.H" #include "stdio.h" bit UartSendFlag = 0; //發送中斷標志位 bit UartReceiveFlag = 0; //接收中斷標志位char putchar(char c)//重定向 {UartSendBit(c);return c; }/***************************************************** *函數名稱:void Uart0_Init(void) *函數功能:Uart0中斷初始化 *入口參數:void *出口參數:void *****************************************************/ void Uart0_Init(void) //選擇Timer1作為波特率信號發生器 {P1CON &= 0XF3;P1PH |= 0X0C; //TX/RX為帶上拉輸入;P13 = 1; //TX初始高電平;SCON = 0X50; //方式1,允許接收數據PCON |= 0X80; T2CON = 0x00; //使用定時器1作UART時鐘TMOD = 0X20; //定時器1 8位自動重載TMCON = 0X02; //定時器1 Fsys;TL1 = 217; TH1 = 217; //UART 波特率24M情況下=38400;TR1 = 1; //啟動Timer0EUART = 1; //允許UART中斷EA = 1; //開總中斷 }/* void Uart0_Init(void) //選擇Timer2作為波特率信號發生器 {P1CON &= 0XF3;P1PH |= 0X0C; //TX為強推輸出,RX為帶上拉輸入;SCON = 0X50; //設置通信方式為模式一,允許接收PCON |= 0X80; TMCON |= 0X04;T2MOD = 0X00;T2CON = 0X30;RCAP2H = 0xFF;RCAP2L = 0xB2;TR2 = 1;EUART = 1; //開啟Uart0中斷EA = 1; } *//***************************************************** *函數名稱:void UartInt(void) interrupt 4 *函數功能:Uart0中斷服務函數 *入口參數:void *出口參數:void *****************************************************/ void UartInt(void) interrupt 4 {if(TI){TI = 0; UartSendFlag = 1; }if(RI){RI = 0; UartReceiveFlag = 1;} }/***************************************************** *函數名稱:void UartSendBit(unsigned char c) *函數功能:Uart0中斷服務函數 *入口參數:void *出口參數:void *****************************************************/ void UartSendBit(unsigned char c) {SBUF = c;while(!UartSendFlag);UartSendFlag = 0; }

我所修改“”Function_Init.c部分:

#ifndef _Function_Init_H_ #define _Function_Init_H_#include "SC92F732x_C.H" #include "intrins.H" #define uchar unsigned char #define uint unsigned int#define IapROM 0x00 //0x00:選擇ROM區操作 0x02:選擇EEPROM區操作 #define IapEPPROM 0x02 //0x00:選擇ROM區操作 0x02:選擇EEPROM區操作extern void IO_Init(void); extern void BTM_Test(void); extern void EXTI_Test(void); extern void Timer_Test(void); extern void LCD_Test(void); extern void PWM_Test(void); extern void ADC_Test(void); extern void IAP_Test(uint Address,uchar IAPArea); void Uart0_Init(void); void UartSendBit(unsigned char c);/***************************************** 說明:選擇測試IC *****************************************/ #define SC92F7323 0 #define SC92F7322 1 #define SC92F7321 2 #define SC92F7320 3#define IC_MODEL SC92F7321#endif

需要在main和uart里面#include "stdio.h"一下。
最后,main部分:

#include "H/Function_Init.H" #include "stdio.h" /************************************************************** 說明: 1、Options for Target‘Target1’:BL51 Locate->Code Range:0x100,燒錄選項請選擇DISRST,復位腳作為普通IO使用; 2、改變TEST的定義,可以分別測試對應的功能; 3、注意:先在Function.H里面選擇測試型號(SC92F7320無LCD/LED和PWM功能) ***************************************************************/ #define Test 5 //BTM:0 EXTI:1 Timer:2 LCD:3 PWM:4 Uart0:5 ADC:7 IAP:8 void main(void) {IO_Init();WDTCON |= 0x10; //清看門狗Uart0_Init();while(1){printf("Hello SC92F7321!\r\n");;}switch(Test){case 0: BTM_Test();break;case 1: EXTI_Test();break;case 2: Timer_Test();break;case 3: LCD_Test();break;case 4: PWM_Test();break;case 5: //Uart0_Test();break;case 7: ADC_Test();break;case 8: IAP_Test(0x1fff,IapROM); //操作ROM,對地址0x1fff進行讀寫測試 // IAP_Test(0x7f,IapEPPROM); //操作EPPROM,對地址0x7f進行讀寫測試break;default:break;} }

主函數也就是while里面的有用,其他可以不看。

總結

以上是生活随笔為你收集整理的赛元单片机SC92F732x系列printf函数构造[以7321为例]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。