西电32位嵌入式实验报告(3)

2019-03-27 19:37

u8 TxBuffer[] = \Interrupt\\n\\r\

u8 RxBuffer[RxBufferSize]; u8 TxCounter = 0;

u8 NbrOfDataToTransfer = TxBufferSize; u8 NbrOfDataToRead = RxBufferSize; ErrorStatus OSC4MStartUpStatus;

void MRCC_Configuration(void); void GPIO_Configuration(void); void EIC_Configuration(void); int main() {

#ifdef DEBUG debug(); #endif

MRCC_Configuration(); GPIO_Configuration();

UART_InitStructure.UART_WordLength = UART_WordLength_8D; UART_InitStructure.UART_StopBits = UART_StopBits_1; UART_InitStructure.UART_Parity = UART_Parity_No ; UART_InitStructure.UART_BaudRate = 115200; UART_InitStructure.UART_HardwareFlowControl = UART_HardwareFlowControl_None;

UART_InitStructure.UART_Mode = UART_Mode_Tx_Rx; UART_InitStructure.UART_FIFO = UART_FIFO_Enable;

UART_InitStructure.UART_TxFIFOLevel = UART_FIFOLevel_1_4; UART_InitStructure.UART_RxFIFOLevel = UART_FIFOLevel_1_8;

UART_Init(UART0, &UART_InitStructure);

while(TxCounter < 0x05) {

UART_SendData(UART0, TxBuffer[TxCounter++]); }

UART_ITConfig(UART0, UART_IT_Receive, ENABLE); UART_ITConfig(UART0, UART_IT_Transmit, ENABLE); EIC_Configuration();

UART_Cmd(UART0, ENABLE); while (1); }

void MRCC_Configuration(void) {

MRCC_DeInit();

OSC4MStartUpStatus = MRCC_WaitForOSC4MStartUp(); if(OSC4MStartUpStatus == SUCCESS) {

MRCC_HCLKConfig(MRCC_CKSYS_Div2); MRCC_CKTIMConfig(MRCC_HCLK_Div1); MRCC_PCLKConfig(MRCC_CKTIM_Div1);

MRCC_CKSYSConfig(MRCC_CKSYS_OSC4MPLL, MRCC_PLL_Mul_15); }

MRCC_IOVoltageRangeConfig(MRCC_IOVoltageRange_3V3); MRCC_PeripheralClockConfig(MRCC_Peripheral_UART0 | MRCC_Peripheral_GPIO, ENABLE); }

void GPIO_Configuration(void) {

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_Init(GPIO0, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_Init(GPIO0, &GPIO_InitStructure); }

void EIC_Configuration(void) {

EIC_IRQInitTypeDef EIC_IRQInitStructure;

EIC_IRQInitStructure.EIC_IRQChannel = UART0_IRQChannel; EIC_IRQInitStructure.EIC_IRQChannelPriority = 1;

EIC_IRQInitStructure.EIC_IRQChannelCmd = ENABLE; EIC_IRQInit(&EIC_IRQInitStructure); EIC_IRQCmd(ENABLE); }

2. AD采集传送功能子程序:

#include %u8 ADC10,ADC1; u16 adc_filter_cnt; u16 adcdata,adc_result; #define SA 0x0400 #define SB 0x0080 #define SC 0x0040 #define SD 0x0010 #define SE 0x0020 #define SF 0x0008 #define SG 0x0100

#define SH 0x0200

#define Digit_0 SA | SB | SC | SD | SE | SF #define Digit_1 SB | SC

#define Digit_2 SA | SB | SD | SE | SG #define Digit_3 SA | SB | SC | SD | SG #define Digit_4 SB | SC | SF | SG #define Digit_5 SA | SC | SD | SF | SG #define Digit_6 SA | SC | SD | SE | SF | SG #define Digit_7 SA | SB | SC

#define Digit_8 SA | SB | SC | SD | SE | SF | SG #define Digit_9 SA | SB | SC | SD | SF | SG #define Digit_A SA | SB | SC | SE | SF | SG #define Digit_B SC | SD | SE | SF | SG #define Digit_C SA | SD | SE | SF

#define Digit_D SB | SC | SD | SE | SG #define Digit_E SA | SD | SE | SF | SG #define Digit_F SA | SE | SF | SG #define Digit_SP 0

const u16 DigitTab[] = {Digit_0,Digit_1,Digit_2,Digit_3, Digit_4,Digit_5,Digit_6,Digit_7, Digit_8,Digit_9,Digit_A,Digit_B, Digit_C,Digit_D,Digit_E,Digit_F, Digit_SP};

GPIO_InitTypeDef GPIO_InitStructure ; EXTIT_InitTypeDef EXTIT_InitStructure; UART_InitTypeDef UART_InitStructure; ADC_InitTypeDef ADC_InitStructure;

void EIC_Configuration(void); void MRCC_Configuration(void); void GPIO_Configuration(void); void Display(u8 Digit,u8 position); ErrorStatus OSC4MStartUpStatus01; void main(void) {

#ifdef DEBUG debug(); #endif

EIC_Configuration(); MRCC_Configuration(); GPIO_Configuration();

TIM_SetPrescaler(TIM0, 0X3E7); TIM_SetPeriod(TIM0, 0xEA5F);

TIM_ITConfig(TIM0, TIM_IT_Update, ENABLE); TIM_Cmd(TIM0, ENABLE);

ADC_InitStructure.ADC_ConversionMode=ADC_ConversionMode_Scan; ADC_InitStructure.ADC_ExtTrigger = ADC_ExtTrigger_Disable; ADC_InitStructure.ADC_AutoClockOff = ADC_AutoClockOff_Disable; ADC_InitStructure.ADC_SamplingPrescaler = 7; ADC_InitStructure.ADC_ConversionPrescaler = 7;

ADC_InitStructure.ADC_FirstChannel = ADC_CHANNEL14; ADC_InitStructure.ADC_ChannelNumber = 1; ADC_Init(&ADC_InitStructure);

ADC_ITConfig(ADC_IT_EOC, ENABLE); ADC_Cmd(ENABLE);

ADC_ConversionCmd(ADC_Conversion_Start);

UART_InitStructure.UART_WordLength = UART_WordLength_8D; UART_InitStructure.UART_StopBits = UART_StopBits_1; UART_InitStructure.UART_Parity = UART_Parity_Odd ; UART_InitStructure.UART_BaudRate = 115200; UART_InitStructure.UART_HardwareFlowControl = UART_HardwareFlowControl_None;

UART_InitStructure.UART_Mode = UART_Mode_Tx; UART_InitStructure.UART_FIFO = UART_FIFO_Enable; UART_Init(UART0, &UART_InitStructure); UART_Cmd(UART0, ENABLE); Display(14,1); while(1) {

Display(ADC10,0); Display(ADC1,1); } }

void MRCC_Configuration(void) {

MRCC_DeInit();

OSC4MStartUpStatus01 = MRCC_WaitForOSC4MStartUp(); if(OSC4MStartUpStatus01 == SUCCESS) {

MRCC_HCLKConfig(MRCC_CKSYS_Div1); MRCC_CKTIMConfig(MRCC_HCLK_Div1); MRCC_PCLKConfig(MRCC_CKTIM_Div2);

CFG_FLASHBurstConfig(CFG_FLASHBurst_Enable);

MRCC_CKSYSConfig(MRCC_CKSYS_OSC4MPLL, MRCC_PLL_Mul_15); }

MRCC_IOVoltageRangeConfig(MRCC_IOVoltageRange_3V3);

MRCC_PeripheralClockConfig(MRCC_Peripheral_GPIO, ENABLE); MRCC_PeripheralClockConfig(MRCC_Peripheral_ADC, ENABLE); MRCC_PeripheralClockConfig(MRCC_Peripheral_TIM0, ENABLE); MRCC_PeripheralClockConfig(MRCC_Peripheral_UART0, ENABLE); }

void GPIO_Configuration(void) {

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_1; GPIO_Init(GPIO0,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_9 | GPIO_Pin_8 | GPIO_Pin_7 | GPIO_Pin_6 | GPIO_Pin_5 | GPIO_Pin_4 | GPIO_Pin_3; GPIO_Init(GPIO1, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_Init(GPIO0,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_Init(GPIO1,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_Init(GPIO0, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_Init(GPIO0, &GPIO_InitStructure); }

void Display(u8 Digit,u8 position) {

u16 i;

GPIO0->PD &= 0xFFF0; Digit &= 0x0F;

GPIO_Write(GPIO1, DigitTab[Digit]);

if (position == 0)

GPIO0->PD |= 0x0004; // P02= COMM of digit 10 else

GPIO0->PD |= 0x0002; // P01= COMM of digit 1 for(i=0; i<0x100; i++); }

void EIC_Configuration(void) {

EIC_IRQInitTypeDef EIC_IRQInitStructure;

EIC_IRQInitStructure.EIC_IRQChannel = TIM0_UP_IRQChannel;


西电32位嵌入式实验报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:东南大学计算力学习题及答案汇总(2011版)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: