赛元单片机SC92F732x系列printf函数构造[以7321为例]
生活随笔
收集整理的這篇文章主要介紹了
赛元单片机SC92F732x系列printf函数构造[以7321为例]
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
先放效果圖:
再放代碼部分:
首先本代碼依據(jù)賽元官方DEMO代碼所作修改,官方地址:賽元芯片官方DEMO
我所修改“”Uart_Init.c部分:
#include "H/Function_Init.H" #include "stdio.h" bit UartSendFlag = 0; //發(fā)送中斷標(biāo)志位 bit UartReceiveFlag = 0; //接收中斷標(biāo)志位char putchar(char c)//重定向 {UartSendBit(c);return c; }/***************************************************** *函數(shù)名稱:void Uart0_Init(void) *函數(shù)功能:Uart0中斷初始化 *入口參數(shù):void *出口參數(shù):void *****************************************************/ void Uart0_Init(void) //選擇Timer1作為波特率信號(hào)發(fā)生器 {P1CON &= 0XF3;P1PH |= 0X0C; //TX/RX為帶上拉輸入;P13 = 1; //TX初始高電平;SCON = 0X50; //方式1,允許接收數(shù)據(jù)PCON |= 0X80; T2CON = 0x00; //使用定時(shí)器1作UART時(shí)鐘TMOD = 0X20; //定時(shí)器1 8位自動(dòng)重載TMCON = 0X02; //定時(shí)器1 Fsys;TL1 = 217; TH1 = 217; //UART 波特率24M情況下=38400;TR1 = 1; //啟動(dòng)Timer0EUART = 1; //允許UART中斷EA = 1; //開總中斷 }/* void Uart0_Init(void) //選擇Timer2作為波特率信號(hào)發(fā)生器 {P1CON &= 0XF3;P1PH |= 0X0C; //TX為強(qiáng)推輸出,RX為帶上拉輸入;SCON = 0X50; //設(shè)置通信方式為模式一,允許接收PCON |= 0X80; TMCON |= 0X04;T2MOD = 0X00;T2CON = 0X30;RCAP2H = 0xFF;RCAP2L = 0xB2;TR2 = 1;EUART = 1; //開啟Uart0中斷EA = 1; } *//***************************************************** *函數(shù)名稱:void UartInt(void) interrupt 4 *函數(shù)功能:Uart0中斷服務(wù)函數(shù) *入口參數(shù):void *出口參數(shù):void *****************************************************/ void UartInt(void) interrupt 4 {if(TI){TI = 0; UartSendFlag = 1; }if(RI){RI = 0; UartReceiveFlag = 1;} }/***************************************************** *函數(shù)名稱:void UartSendBit(unsigned char c) *函數(shù)功能:Uart0中斷服務(wù)函數(shù) *入口參數(shù):void *出口參數(shù):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區(qū)操作 0x02:選擇EEPROM區(qū)操作 #define IapEPPROM 0x02 //0x00:選擇ROM區(qū)操作 0x02:選擇EEPROM區(qū)操作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);/***************************************** 說明:選擇測(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部分:
主函數(shù)也就是while里面的有用,其他可以不看。
總結(jié)
以上是生活随笔為你收集整理的赛元单片机SC92F732x系列printf函数构造[以7321为例]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 石头剪刀布php源码,原创:微信小程序源
- 下一篇: 计算机辐射测试,电脑产品emc测试辐射骚