基于 stm32f103 芯片的直流电机驱动控制仿真系统( 二 )

<0xffff-6)differ=__HAL_TIM_GET_COUNTER(&htim3);HAL_TIM_Base_Stop(&htim3);}void DS18B20_DQ_DDR(uint8_t ddr){if(ddr == 1){GPIOA->CRH&= 0XFFFF1FFF;GPIOA->CRH|= 0X00001000;}else{GPIOA->CRH&= 0XFFFF8FFF;GPIOA->CRH|= 0X00008000;}}uint8_t DS18B20_Rbit(void){uint8_t date,x;DS18B20_DQ_DDR(1);DS18B20_DQ_L;Delay_us(2);DS18B20_DQ_H;DS18B20_DQ_DDR(0);Delay_us(12);x = DS18B20_DQ_ReadPin;if(x)date = 0x80;elsedate = 0;Delay_us(50);return date;}uint8_t DS18B20_Rbyte(void){uint8_t rbyte = 0,i = 0, tempbit = 0;for(i=1;i<=8;i++){tempbit = DS18B20_Rbit();rbyte = rbyte >> 1;rbyte = rbyte|tempbit;}return rbyte;}void DS18B20_Wbyte(uint8_t xbyte){uint8_t i,x=0;DS18B20_DQ_DDR(1);for(i=1;i<=8;i++){x = xbyte & 0x01;if(x){DS18B20_DQ_L;Delay_us(2);DS18B20_DQ_H;Delay_us(60);}else{DS18B20_DQ_L;Delay_us(60);DS18B20_DQ_H;Delay_us(2);}xbyte = xbyte >> 1;}}void DS18B20_Reset(void){DS18B20_DQ_DDR(1);DS18B20_DQ_H;Delay_us(700);DS18B20_DQ_L;Delay_us(500);DS18B20_DQ_DDR(0);DS18B20_DQ_H;Delay_us(33);DS18B20_DQ_ReadPin;Delay_us(500);}short DS18B20_Get_Temp(void){uint8_t fg;uint8_t TL,TH;short data;DS18B20_Reset();DS18B20_Wbyte(0xcc);DS18B20_Wbyte(0x44);DS18B20_Reset();DS18B20_Wbyte(0xcc);DS18B20_Wbyte(0xbe);TL = DS18B20_Rbyte();TH = DS18B20_Rbyte();if(TH > 0x7){TL = ~TL;TH = ~TH;fg = 0;}elsefg = 1;data = http://www.kingceram.com/post/TH;data <<= 8;data += TL;data = (float)data*0.0625;if(fg)return data;elsereturn -data;}#ifdefUSE_FULL_ASSERT/*** @briefReports the name of the source file and the source line number*where the assert_param error has occurred.* @paramfile: pointer to the source file name* @paramline: assert_param error line source number* @retval None*/void assert_failed(uint8_t *file, uint32_t line){/* USER CODE BEGIN 6 *//* User can add his own implementation to report the file name and line number,tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) *//* USER CODE END 6 */}#endif /* USE_FULL_ASSERT *//************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
2.设置一下编译的选项
将main文件替换后,或者获得完整的工程文件后,你需要让编译器的设置做出一些改变 。
(1)点击魔术棒,如下图:
(2)在中勾选输出hex文件
(3)在中选择芯片
选c6…
3.运行得到可执行文件
点击,如下图:
得到一个可执行文件ATest.hex
文件存放在MDK-ARM\ATest路径下

基于 stm32f103 芯片的直流电机驱动控制仿真系统

文章插图
三,仿真
在仿真之前,你需要安装一个.8,一定要8.8及以上版本 。
百度网盘链接:
提取码:8r7g
1.安装.8
运行上述文件中的.8.SP1.exe,在出现激活界面时,选择使用本地文件,选择到文件中的.lxk,其他一切默认 。
安装之后,运行Patch.exe完成安装 。
2.开始仿真
从工程文件.进入.8,这个文件在老师给的资料中,也可以在我发的完整工程连接中 。
(1)连线
从老师题目中拿到的工程文件需要做一些连线,如下图所示进行连线:
(2)将可执行文件(ATest.hex)烧录进芯片
双击左侧的芯片,将 file栏目的路径,定位到keil的输出文件处,如下图所示:
(3)运行
点击左下角的开始按钮(1),开始仿真,通过修改温度(2)观察电机转动情况和终端输出 。
四,根据学号更改自己的温度阈值
找到keil5工程文件中的src文件夹,打开main文件,更改第156行if(temp > 28.3)中的数字即可(找不到的用打开)