你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f042f6 UART2无法使用

[复制链接]
逐梦 提问时间:2019-2-20 16:48 /
阅读主题, 点击返回1楼
收藏 评论18 发布时间:2019-2-20 16:48
18个回答
jeffhe1 回答时间:2019-2-21 09:07:12
你是使用標準庫嗎 ? 是的話 應該可以用這個函式 看看

void USART_SendData(USART_TypeDef* USARTx, uint16_t Data)
{
  /* Check the parameters */
  assert_param(IS_USART_ALL_PERIPH(USARTx));
  assert_param(IS_USART_DATA(Data));
   
  /* Transmit Data */
  USARTx->TDR = (Data & (uint16_t)0x01FF);
}

我有用過 STM32F051 是可用的 , 應該都是同為 M0系列

不然你可以把代碼整包載上來看看 , 看看有哪位大神剛好有時間可以試看看
逐梦 回答时间:2019-2-21 09:17:35
jeffhe1 发表于 2019-2-21 09:07
你是使用標準庫嗎 ? 是的話 應該可以用這個函式 看看

void USART_SendData(USART_TypeDef* USARTx, uint16 ...

感谢你的耐心帮助,你这个程序发送的是uint16的数据?是不是还有数据处理的代码没有贴上?
jeffhe1 回答时间:2019-2-21 09:43:31
沒有 , 你可以直接填一個 byte , 我都直接這樣送

/*****************  发送一个字符 **********************/
void Usart_SendByte( USART_TypeDef * pUSARTx, uint8_t ch)
{
        /* 发送一个字节数据到USART */
        USART_SendData(pUSARTx,ch);
               
        /* 等待发送数据寄存器为空 */
        while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET);       
}
逐梦 回答时间:2019-2-21 17:10:16
问题已经解决了,原因是同事在另一个地方调用了PA2、3。还遇到一个问题,STM32单片机串口如果打开校验就必须把数据位改成9位,否则发送的数据最高位是错的
12

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版