#define EXTI9_5_IRQChannel ((u8)0x17) /* External Line[9:5] Interrupts */
#define EXTI15_10_IRQChannel ((u8)0x28) /* External Line[15:10] Interrupts */
為什么NVIC.H 只有這兩個(gè)中斷函數(shù)定義, 0-4沒(méi)有嗎?
提示錯(cuò)誤1:
..\Output\STM32-DEMO.axf: Error: L6218E: Undefined symbol TimingDelay_Decrement (referred from stm32f10x_it.o).
沒(méi)有找到這個(gè)函數(shù) TimingDelay_Decrement 在這個(gè) stm32f10x_it.c 文件中。。
USART 配置部分
//串口1 配置
void USART1_Config(void)
{
/*
聲明一個(gè)結(jié)構(gòu)體,名字是GPIO_InitStructure,結(jié)構(gòu)體原型由GPIO_InitTypeDef 確定,
stm32里面初始化GPIO用的吧。。設(shè)置完了GPIO_InitStructure里面的內(nèi)容后
在GPIO_Init (GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_InitStruct)里面調(diào)用,
比如初始化pa口,就是
GPIO_Init (GPIOA, &GPIO_InitStructure),括號(hào)里后面那個(gè)就是你問(wèn)題里面聲明的那個(gè)結(jié)構(gòu)體
*/
GPIO_InitTypeDef GPIO_InitStructure; //定義結(jié)構(gòu)體
// 結(jié)構(gòu)體內(nèi)容在stm32f10x_gpio.h 101行 // 見(jiàn)庫(kù)函數(shù) P125頁(yè)
USART_InitTypeDef USART_InitStructure; //定義結(jié)構(gòu)體
// 結(jié)構(gòu)體內(nèi)容在stm32f10x_usart.h 76行 // 庫(kù)函數(shù)的348頁(yè)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);
//打開(kāi)時(shí)鐘
//初始化GPIO 見(jiàn)庫(kù)函數(shù) P125頁(yè)
/* USART1 GPIO config */
/* Configure USART1 Tx (PA.09) as alternate function push-pull */
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9; //要設(shè)置的PIN
// GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽輸出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //復(fù)用推挽輸出
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //輸出速度
GPIO_Init(GPIOA,&GPIO_InitStructure); //配置 IO
/* Configure USART1 Rx (PA.10) as input floating */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //RX 接收引腳
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空輸入模式
GPIO_Init(GPIOA, &GPIO_InitStructure); //配置IO口
// 結(jié)構(gòu)體內(nèi)容在stm32f10x_usart.h 76行 // 庫(kù)函數(shù)的348頁(yè)
/* USART1 mode config */
USART_InitStructure.USART_BaudRate=9600; //設(shè)定波特率
USART_InitStructure.USART_WordLength=USART_WordLength_8b; //8位數(shù)據(jù)
USART_InitStructure.USART_StopBits=USART_StopBits_1; //停止位1位
USART_InitStructure.USART_Parity=USART_Parity_No; //無(wú)校驗(yàn)位
USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//無(wú)硬件控制 CTS RTS
USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx; //發(fā)送接收 使能
USART_Init(USART1,&USART_InitStructure); //配置USART1
USART_Cmd(USART1,ENABLE); //使能 串口1
}
void USART1_Send_Byte(unsigned char byte) //串口發(fā)送一個(gè)字節(jié)
{
USART_SendData(USART1, byte); //通過(guò)庫(kù)函數(shù) 發(fā)送數(shù)據(jù)
while( USART_GetFlagStatus(USART1,USART_FLAG_TC)!= SET);
//等待發(fā)送完成。 檢測(cè) USART_FLAG_TC 是否置1; //見(jiàn)庫(kù)函數(shù) P359 介紹
}
/*------------串口1 發(fā)送一個(gè)字符串-------------------
程序調(diào)用示例:
uchar code str1[]="XiaoQiang"; //定義一個(gè) 字符串 注意 字符串 是""
UART1_Send_Str(str1); //發(fā)送字符串
-----------------------------------------------------*/
//發(fā)送字符串 函數(shù) 應(yīng)用指針 方法
void UART1_Send_Str(unsigned char *s)//發(fā)送字符串 函數(shù) 應(yīng)用指針 方法
{
unsigned char i=0; //定義一個(gè)局部變量 用來(lái) 發(fā)送字符串 ++運(yùn)算
while(s[i]!='\0') // 每個(gè)字符串結(jié)尾 都是以 \0 結(jié)尾的
{
USART_SendData(USART1,s[i]); //通過(guò)庫(kù)函數(shù) 發(fā)送數(shù)據(jù)
while( USART_GetFlagStatus(USART1,USART_FLAG_TC)!= SET);
//等待發(fā)送完成。 檢測(cè) USART_FLAG_TC 是否置1; //見(jiàn)庫(kù)函數(shù) P359 介紹
i++; //i++一次
}
}
/*------------串口1 發(fā)送數(shù)組數(shù)據(jù) 循環(huán)發(fā)送一個(gè)數(shù)組上去-------------------
程序示例:
uchar Tx_Data[15]; //定義數(shù)組 范圍是:Tx_Data[0]-Tx_Data[14]
UART1_Send_Array(Tx_Data,6); //發(fā)送數(shù)組前6位數(shù)據(jù) Tx_Data[0]-Tx_Data[5]
UART1_Send_Array(Tx_Data,15); //發(fā)送數(shù)組所有數(shù)據(jù) Tx_Data[0]-Tx_Data[14]
------------------------------------------------------------------------*/
void UART1_Send_Array(unsigned char send_array[],unsigned char num) //兩個(gè)參數(shù) 一是數(shù)組(的數(shù)據(jù)) 二是數(shù)組長(zhǎng)度1-255
{
//串口發(fā)送
unsigned char i=0; //定義一個(gè)局部變量 用來(lái) 發(fā)送字符串 ++運(yùn)算
while(i<num) //i肯定小于num 是正確 就執(zhí)行
{
USART_SendData(USART1,send_array[i]); //通過(guò)庫(kù)函數(shù) 發(fā)送數(shù)據(jù)
while( USART_GetFlagStatus(USART1,USART_FLAG_TC)!= SET);
//等待發(fā)送完成。 檢測(cè) USART_FLAG_TC 是否置1; //見(jiàn)庫(kù)函數(shù) P359 介紹
i++; //值 加一
}
}