包含UART、KEY、LED、USB-Flash、RTC幾個完整工程的例程給新手鋪路
0.jpg (72.83 KB, 下載次數: 108)
下載附件
2018-9-1 02:43 上傳
=============================
下載方式
=============================
·SWD JTAG
=============================
程序功能
=============================
·USART串口實驗
=============================
硬件連接
=============================
·將串口調試板連接到USART1接口上
======================================
軟件設置
======================================
·并且打開串口助手 選擇好相應的COM口 如下設置
----------------
波特率 | 115200 |
----------------
數據位 | 8 |
----------------
停止位 | 1 |
----------------
校驗位 | None |
----------------
流控制 | None |
----------------
======================================
實驗現象
======================================
·串口助手輸出相應信息
單片機源程序如下:
- #include <stm32f10x.h>
- #include "usart.h"
- //#define CTRT
- void Delay (uint32_t nCount);
- #define LED1(x) x ? GPIO_SetBits(GPIOB,GPIO_Pin_12): GPIO_ResetBits(GPIOB,GPIO_Pin_12)
- #define LED2(x) x ? GPIO_SetBits(GPIOB,GPIO_Pin_13): GPIO_ResetBits(GPIOB,GPIO_Pin_13)
- #define LED3(x) x ? GPIO_SetBits(GPIOB,GPIO_Pin_14): GPIO_ResetBits(GPIOB,GPIO_Pin_14)
- #define LED4(x) x ? GPIO_SetBits(GPIOB,GPIO_Pin_15): GPIO_ResetBits(GPIOB,GPIO_Pin_15)
- uint8_t TxBuffer[] = "\n\rUSART Hyperterminal Hardware Flow Control Example: USART - \
- Hyperterminal communication using hardware flow control\n\r";
- #ifndef CTRT
- //配置矢量中斷,矢量的意思就是有順序,有先后的意思。
- void NVIC_Configuration(void)
- {
- NVIC_InitTypeDef NVIC_InitStructure; //定義數據結構體
-
- NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0000);//將中斷矢量放到Flash的0地址
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);//設置優先級配置的模式,詳情請閱讀原材料中的文章
- //使能串口中斷,并設置優先級
- NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure); //將結構體丟到配置函數,即寫入到對應寄存器中
- }
- #endif
- int main(void)
- {
- u32 i=0xffffff;
- SystemInit();
- #ifdef CTRT /*使用CTS RTS硬件流模式*/
- USART_CTRT_Configuartion();
- while(NbrOfDataToTransfer--)
- {
- USART_SendData(USART1, TxBuffer[TxCounter++]);
- while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
- }
-
- /*Receive a string (Max RxBufferSize bytes) from the Hyperterminal ended by '\r' (Enter key) */
- while(1)
- {
- if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) != RESET)
- {
- USART_SendData(USART1,USART_ReceiveData(USART1));
- }
- }
- #else /*普通串口模式*/
- usart_Configuration();
- NVIC_Configuration();
- while(1)
- {
- printf("Waveshare!\r\n");
- while(--i);
- i=0xffffff;
- }
- #endif
- }
- /*******************************************************************************
- * Function Name : Delay
- * Description : Delay Time
- * Input : - nCount: Delay Time
- * Output : None
- * Return : None
- * Attention : None
- *******************************************************************************/
- void Delay (uint32_t nCount)
- {
- for(; nCount != 0; nCount--);
- }
復制代碼
所有資料51hei提供下載:
Port103R.rar
(1.97 MB, 下載次數: 410)
2018-9-1 02:46 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
Port103R.pdf
(389.14 KB, 下載次數: 118)
2018-8-31 23:49 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|