void init(); 是函数声明,和面的init();是调用该函数。void说明没返回值,init是方法名;()里面是参数列表,这里没有参数。
1. uart_init() 该函数主要配置UART的,波特率115200,数据位:8,奇偶校验位:0,终止位:1,不设置流控。 如下图:是运行在windows下常用的串口工具配置信息,配置信息必须完全一致。 2. putc() 该函数是向串口发送一个数据data,他的实现逻辑就是轮询检查寄存器UART2.UTRSTAT2 ,判断其bite【1】是否置1,如果置1,则...
0参数表示使用默认时钟为“PCLK”,传入其他则为使用传入的时钟值pclk;比如Uart_Init( 32768,4800 );则说明串口使用32.768K的时钟基准产生4800的波特率。这样设置函数是为了方便移植,如果不需要可以去掉参数直接初始化,比如51单片机就只有1种系统时基可选,就没必要搞这么复杂。
#include"usart.h"//使UASRT串口可用printf函数发送//在usart.h文件里可更换使用printf函数的串口号#if1#pragmaimport(__use_no_semihosting)//标准库需要的支持函数struct __FILE{int handle;};FILE__stdout;//定义_sys_exit()以避免使用半主机模式_sys_exit(int x){x=x;}//重定义fputc函数intfputc(int ...
GPIO_InitTypeDef GPIO_InitStruct; USART_InitTypeDef USART_InitStruct; // 开启串口的GPIO时钟 DEBUG_UASRT_GPIO_APBxClkCmd(DEBUG_UASRT_GPIO_CLK, ENABLE); // USART的TX配置为复用推挽输出 GPIO_InitStruct.GPIO_Pin = DEBUG_UASRT_TX_GPIO_PIN; ...
3.主函数 voidmain(){UartInit();while(1){delay();//延时直接用前面的了,懒得写了,或者用定时器做中断延时也行delay();delay();delay();delay();SendDate('T');//定时发送字符T} 4.编译后烧入单片机,打开串口监测软件验证功能,注意烧入时应使单片机系统频率为12Mhz,否则待会在通信中会出现乱码。
关于节点函数void UART_Init(unsigned char SYS_Clk, unsigned int baud)相关功能函数、语句的解释,正确的是?A. UART_IOConfig();为UART IO引脚初始化 。B. UART1_CR1 = 0;该语句为串口CR1寄存器赋值语句,该寄存器值第二位为0,禁止校验。C. (UART_Temp = SYS_Clk*1000000/baud; UART1_BRR2 = (...
1_IRQn;NVIC_Init(&NVIC_InitStructure);}// 中断函数voidUSART1_IRQHandler(void){u8 res;if(USART_GetITStatus(USART1,USART_IT_RXNE)){res=USART_ReceiveData(USART1);USART_SendData(USART1,res);}}intmain(void){// 中断分组NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);My_USART1_Init();while(1)...
在main函数中,先会调用uart_init()初始化UART,然后使用getc接收PC发过来的字符,再调用putc()将该字符+1回复给PC。 /*uart.c*/ void uart_init() { // 1 配置引脚用于RX/TX功能 GPA0CON = 0x22222222; GPA1CON = 0x2222; // 2 设置数据格式等 UFCON0 = 0x1; // 使能FIFO UMCON0 = 0x0; /...
UART_InitTypeDef Init; 在调用初始化函数前,需要把初始化参数如 波特率,是否奇偶校验等写入此结构体。 UART_AdvFeatureInitTypeDef AdvancedInit; 串口扩展功能初始化参数。当前未用到扩展功能。 使用Handle 的好处是,我们操作某个模块时,把这个模块对应的 Handle 的首地址传给驱动函数就行了。此函数通过 Handle 就可...