网站开发如何优秀网站模板下载
news/
2025/9/23 8:31:24/
文章来源:
网站开发如何,优秀网站模板下载,安徽住房和建设厅网站,app开发去哪个网站到现在为止都是在开发板上运行的裸机程序#xff0c;相当于之前学习STM32单片机时走过的路#xff0c;还没有真正进入到核心的驱动开发部分#xff0c;但这都是基础#xff0c;所以慢慢来不着急。 接下来进入串口通信的学习#xff0c;和GPIO一样#xff0c;也是和单片机…到现在为止都是在开发板上运行的裸机程序相当于之前学习STM32单片机时走过的路还没有真正进入到核心的驱动开发部分但这都是基础所以慢慢来不着急。 接下来进入串口通信的学习和GPIO一样也是和单片机对比着来看。 先看下使用CubeMX设置初始化串口后自动生成的代码应该都很熟悉了。
void MX_USART1_UART_Init(void)
{huart1.Instance USART1;huart1.Init.BaudRate 115200;huart1.Init.WordLength UART_WORDLENGTH_8B;huart1.Init.StopBits UART_STOPBITS_1;huart1.Init.Parity UART_PARITY_NONE;huart1.Init.Mode UART_MODE_TX_RX;huart1.Init.HwFlowCtl UART_HWCONTROL_NONE;huart1.Init.OverSampling UART_OVERSAMPLING_16;if (HAL_UART_Init(huart1) ! HAL_OK){Error_Handler();}
}void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
{GPIO_InitTypeDef GPIO_InitStruct {0};if(uartHandle-InstanceUSART1){__HAL_RCC_USART1_CLK_ENABLE();__HAL_RCC_GPIOA_CLK_ENABLE();/**USART1 GPIO ConfigurationPA8 ------ USART1_CKPA9 ------ USART1_TXPA10 ------ USART1_RX*/GPIO_InitStruct.Pin GPIO_PIN_8|USART1_TX_Pin;GPIO_InitStruct.Mode GPIO_MODE_AF_PP;GPIO_InitStruct.Speed GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(GPIOA, GPIO_InitStruct);GPIO_InitStruct.Pin USART1_RX_Pin;GPIO_InitStruct.Mode GPIO_MODE_INPUT;GPIO_InitStruct.Pull GPIO_NOPULL;HAL_GPIO_Init(USART1_RX_GPIO_Port, GPIO_InitStruct);/* USART1 interrupt Init */HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);HAL_NVIC_EnableIRQ(USART1_IRQn);}
}使用串口收发数据时使用的函数是HAL_UART_Transmit()、HAL_UART_Receive()或者HAL_UART_Receive_IT()等或者直接改写printf()和scanf()来直接打印或接收串口数据。 I.MX6UL的串口操作大同小异和之前的GPIO类似也是需要第三方的编写函数来操作各个串口相关的寄存器来达到想要的功能。有以下4步
设置UART的时钟源设置寄存器CCM_CSCDR1初始化UART包括波特率奇偶校验位、停止位、数据位设置寄存器UART1_UCR1~UCR3使能相应的UART设置寄存器UART1_UCR1编写UART的数据收发函数操作寄存器UART1_UTXD
但其实想想就知道编写收发函数的这种串口读写的方法太繁琐了最开始helloworld的时候不是直接可以用printf(Hello World!\n);吗要注意这个是直接打在屏幕上而我们现在是要把可执行文件烧写到开发板上通过开发板的串口和PC连接后发送和接收数据不是一个层面的事情。当然我们还是可以用printf()和scanf()但是一定需要初始化串口。本人最主要是想学习Linux的应用比较浮躁不愿意投入时间精力去看寄存器的操作所以在这一阶段利用Uboot移植的stdio文件夹再使用正点原子写好的相关驱动直接放到工程文件夹里就可以使用串口进行数据的读写了。 在main.c里加入这段
char a[20];
int b;
printf(please input your name and your age, use space between them:);
scanf(%s %d, a, b);
printf(\r\n%s is the most handsome one in the age of %d, a, b);编译链接烧写后通过MobaXTerm或其他工具即可完成串口数据的测试可以打印并接收完成了预想的功能。
未完待续
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911913.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!