包含UART、KEY、LED、USB-Flash、RTC几个完整工程的例程给新手铺路
=============================
下载方式
=============================
·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)
Port103R.pdf
(389.14 KB, 下载次数: 118)
|