当前位置: 首页 > news >正文

网站友情链接要加什么用百度提交链接

网站友情链接要加什么用,百度提交链接,小说网站模板建站,类似wordpress的工具HAL库中USART外设配置流程及库函数讲解 一说到串口通信#xff0c;及必须说一下aRS-232/485协议。232协议标准物理接口就是我们常用的DB9串口线 RS-232电平#xff1a; 逻辑1#xff1a;-15~-3 逻辑0#xff1a; 3~15 COMS电平#xff1a; 逻辑1#xff1a;3.3 逻辑0及必须说一下aRS-232/485协议。232协议标准物理接口就是我们常用的DB9串口线 RS-232电平 逻辑1-15~-3 逻辑0 3~15 COMS电平 逻辑13.3 逻辑0 0v TTL电平 逻辑15v 逻辑00v 电平转换问题 TTL和COMS电平不能和232电平直接通信会烧坏单片机。 经过电平转换芯片 常见转换芯片 MAX232 串口通信一般三根线两个设备之间TXRX必须交叉连接。 现在电脑一般都没有DB9接口了STM32一般都用USB口与电脑通信开发板连接串口模块USB插入电脑。 若开发板中没有板载电平转换芯片要借助串口转换模块。 注意 现在电脑中一般已经没有了串口外设现在要使用串口要安装驱动用USB来模拟串口所以电脑中需要安装对应芯片驱动CH340 USART/UART异步通信配置步骤 HAL库初始化USART bsp_usart.c #include ./usart/bsp_debug_usart.hUART_HandleTypeDef UartHandle; //extern uint8_t ucTemp; /*** brief DEBUG_USART GPIO 配置,工作模式配置。115200 8-N-1* param 无* retval 无*/ void DEBUG_USART_Config(void) { UartHandle.Instance DEBUG_USART;UartHandle.Init.BaudRate DEBUG_USART_BAUDRATE;UartHandle.Init.WordLength UART_WORDLENGTH_8B;UartHandle.Init.StopBits UART_STOPBITS_1;UartHandle.Init.Parity UART_PARITY_NONE;UartHandle.Init.HwFlowCtl UART_HWCONTROL_NONE;UartHandle.Init.Mode UART_MODE_TX_RX;HAL_UART_Init(UartHandle);/*使能串口接收断 */__HAL_UART_ENABLE_IT(UartHandle,UART_IT_RXNE); }/*** brief UART MSP 初始化 * param huart: UART handle* retval 无*/ void HAL_UART_MspInit(UART_HandleTypeDef *huart) { GPIO_InitTypeDef GPIO_InitStruct;DEBUG_USART_CLK_ENABLE();DEBUG_USART_RX_GPIO_CLK_ENABLE();DEBUG_USART_TX_GPIO_CLK_ENABLE();/**USART1 GPIO Configuration PA9 ------ USART1_TXPA10 ------ USART1_RX *//* 配置Tx引脚为复用功能 */GPIO_InitStruct.Pin DEBUG_USART_TX_PIN;GPIO_InitStruct.Mode GPIO_MODE_AF_PP;GPIO_InitStruct.Pull GPIO_PULLUP;GPIO_InitStruct.Speed GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(DEBUG_USART_TX_GPIO_PORT, GPIO_InitStruct);/* 配置Rx引脚为复用功能 */GPIO_InitStruct.Pin DEBUG_USART_RX_PIN;GPIO_InitStruct.ModeGPIO_MODE_AF_INPUT; //模式要设置为复用输入模式 HAL_GPIO_Init(DEBUG_USART_RX_GPIO_PORT, GPIO_InitStruct); HAL_NVIC_SetPriority(DEBUG_USART_IRQ ,0,1); //抢占优先级0子优先级1HAL_NVIC_EnableIRQ(DEBUG_USART_IRQ ); //使能USART1中断通道 }/***************** 发送字符串 **********************/ void Usart_SendString(uint8_t *str) {unsigned int k0;do {HAL_UART_Transmit(UartHandle,(uint8_t *)(str k) ,1,1000);k;} while(*(str k)!\0);} //重定向c库函数printf到串口DEBUG_USART重定向后可使用printf函数 int fputc(int ch, FILE *f) {/* 发送一个字节数据到串口DEBUG_USART */HAL_UART_Transmit(UartHandle, (uint8_t *)ch, 1, 1000); return (ch); }//重定向c库函数scanf到串口DEBUG_USART重写向后可使用scanf、getchar等函数 int fgetc(FILE *f) { int ch;HAL_UART_Receive(UartHandle, (uint8_t *)ch, 1, 1000); return (ch); }/*********************************************END OF FILE**********************/ bsp_usart.h #ifndef __DEBUG_USART_H #define __DEBUG_USART_H#include stm32f1xx.h #include stdio.h//串口波特率 #define DEBUG_USART_BAUDRATE 115200//引脚定义 /*******************************************************/ #define DEBUG_USART USART1 #define DEBUG_USART_CLK_ENABLE() __HAL_RCC_USART1_CLK_ENABLE();#define DEBUG_USART_RX_GPIO_PORT GPIOA #define DEBUG_USART_RX_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() #define DEBUG_USART_RX_PIN GPIO_PIN_10#define DEBUG_USART_TX_GPIO_PORT GPIOA #define DEBUG_USART_TX_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() #define DEBUG_USART_TX_PIN GPIO_PIN_9#define DEBUG_USART_IRQHandler USART1_IRQHandler #define DEBUG_USART_IRQ USART1_IRQn /************************************************************/void Usart_SendString(uint8_t *str); void DEBUG_USART_Config(void); int fputc(int ch, FILE *f); int fgetc(FILE *f); extern UART_HandleTypeDef UartHandle; #endif /* __USART1_H */ mian.c int main(void) {HAL_Init(); /* 配置系统时钟为72 MHz */ SystemClock_Config();/*初始化USART 配置模式为 115200 8-N-1中断接收*/DEBUG_USART_Config();/*调用printf函数因为重定向了fputcprintf的内容会输出到串口*/printf(欢迎使用野火开发板\n); /*自定义函数方式*/Usart_SendString( (uint8_t *)自定义函数输出这是一个串口中断接收回显实验\n );while(1){ } }HAL库USART外设驱动函数 /** addtogroup UART_Exported_Functions_Group2* {*/ /* IO operation functions *******************************************************/ HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout); HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout); HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size); HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size); HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size); HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size); HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart); HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart); HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart); /* Transfer Abort functions */ HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart); HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart); HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart); HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart); HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart); HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart);void HAL_UART_IRQHandler(UART_HandleTypeDef *huart); void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart); void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart); void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart); void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart); void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart); void HAL_UART_AbortCpltCallback (UART_HandleTypeDef *huart); void HAL_UART_AbortTransmitCpltCallback (UART_HandleTypeDef *huart); void HAL_UART_AbortReceiveCpltCallback (UART_HandleTypeDef *huart); /**HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 作用:以中断的方式接收指定字节的数据 形参1是UART_ HandleTypeDef结构体类型指针变量 形参2是指向接收数据缓冲区 形参3是要接收的数据大小以字节为单位 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout) 作用:以阻塞的方式发送指定字节的数据 形参1 : UART_ HandleTypeDef 结构体类型指针变量 形参2:指向要发送的数据地址 形参3:要发送的数据大小以字节为单位 形参4:设置的超时时间以ms单位
http://www.w-s-a.com/news/873596/

相关文章:

  • 公司怎么注册官方网站wordpress花园网站
  • 一般网站的建设步骤有哪些企业网站建设应该注意什么事项问题
  • 枣庄市建设局网站建设工程合同交底的内容包括
  • 全国十大跨境电商排名seo优化入门教程
  • 福安网站开发网站内容建设要求age06
  • 网站开发制作公司罗湖在线
  • 做网站银川潍坊网络科技有限公司
  • 南宁企业网站建站模板盐田高端网站建设
  • 深圳市建设局网站张局北京档案馆网站建设
  • 运动健身型网站开发网站备案掉了什么原因
  • 网站开发的前后端是什么注册网站多少钱一年
  • 彩票网站建设需要什么网站未备案被阻断怎么做
  • wordpress 版权声明网站优化排名哪家性价比高
  • dedecms网站关键词外包做网站平台 一分钟
  • 酒网站建设游戏分类网站怎么做
  • 仿牌网站安全北京大良网站建设
  • ps中怎样做网站轮播图片吉林省网站建设公司
  • 广西网站建设-好发信息网温江做网站哪家好
  • 网站建设属于什么职位类别南京哪个网站建设比较好
  • wdcp 网站备份东莞网站建设五金建材
  • 天津制作网站的公司电话wordpress架设进出销
  • tomcat做静态网站prestashop和wordpress
  • 上海响应式建站wap网站微信分享代码
  • 四川建筑人才招聘网南昌网站优化
  • 南充网站建设制作重庆有的设计网站大全
  • 深圳沙井做网站公司网站搭建谷歌seo
  • 学校资源网站的建设方案山西省住房城乡建设厅网站
  • 医疗行业网站建设深圳网络科技公司排名
  • 企业形象型网站建设wordpress chess
  • 网站的域名起什么好处罗湖网站建设公司乐云seo